当前位置: 首页 > news >正文

华为OD试题二(文件目录大小、相对开音节、找最小数)

1. 文件目录大小

题目描述:
一个文件目录的数据格式为:目录id,本目录中文件大小,(子目录id
列表)。其中目录id全局唯一,取值范围[1,200],本目录中文件大小范
围[1,1000],子目录id列表个数[0,10]例如:1 20 (2,3)表示目录1中文件总大小是20,有两个子目录,id分	
别是2和3现在输入一个文件系统中所有目录信息,以及待查询的目录 id ,返
回这个目录和及该目录所有子目录的大小之和。

参考代码:

# 核心 递归遍历目录
# 测试数据
test_data1 = ["3 15 ()","1 20 (2)","2 10 (3)"
]
test_data2 = ["4 20 ()","5 30 ()","2 10 (4,5)","1 40 ()"
]def fun(index,data):# 计数器 统计文件总大小count = 0for line in data:x,y,z = line.split()if x == index:count += int(y)z = z[1:-1]if z == ''return countelse:if ',' in z:index_list = z.split(',')for _ in index_list:count += fun(_)else:count += fun(z)return countres = fun('2',test_data2)
print(res)

2. 相对开音节

题目描述:
给定一个字符串,以空格为分隔符,反转每个单词中的字母,若单词
中包含如数字等其他非字母时不进行反转。
反转后计算其中含有相对开音节结构的子串个数(连续的子串中部分
字符可以重复)。相对开音节构成的结构为辅音+元音(aeiou)+辅音(r除外)+e,常见
的单词有bike、cake等。

参考代码:

# 测试数据
test_data = "!ekam a ekekac"
# 字母集
char_str = "abcdefghijklmnopqrstuvwxyz"
char_list = list(char_str)
# 开音节字母集
k_char_str = "bcdfghjklmnpqrstvwxyz"
k_char_list = list(k_char_str)def fun(temp_str):# 字符分割temp_str_list = temp_str.split()# 存放新的 字符new_list = []for s in temp_str_list:# 该标志用于控制字符串是否反转flag = Truefor _ in s:if _ not in char_str:flag = Falsebreakif flag:s_list = list(s)s_list.reverse()new_list.append(''.join(s_list))else:new_list.append(s)# 统计 开音节个数count = 0for ele in new_list:for cur,s in enumerate(ele):#  开音节字母判断if cur <= len(ele) - 4: if ele[cur] in k_char_list and ele[cur+1] in ['a','e','i','o','u'] and(ele[cur+2] in k_char_list and ele[cur+2] != 'r') and ele[cur+3] == 'e':count += 1# 打印开音节个数print(count)fun(test_data)		

3. 找最小数

题目描述:
给一个正整数NUM1,计算出新正整数NUM2,NUM2为NUM1中移
除N位数字后的结果,需要使得NUM2的值最小。
输入: 26153714
输出: 131
说明: 移除 2,6,5,7 这4个数字,剩下 1、3、1 按原有顺序排列组成
131 为最小值。

算法可以参考下图:
在这里插入图片描述

参考代码:

# 测试数据
test_data = "2615371"
# 移除的个数
num = 4def fun(temp_str,num):# 字符转列表str_list = list(temp_str)# 字符串 转成 整形str_list = [ int(i) for i in str_list ]# 用于确定 要删除数的范围count = len(str_list) - numcur = -(count - 1)# 存放最后结果t_str = ''pos = -1for i in range(count):temp_list = str_list[pos+1:cur]if len(temp_list) == 0:ele = str_list[-1]else:ele = min(temp_list)pos = str_list.index(ele)t_str += str(ele)cur += 1print(t_str)fun(test_data,num)
http://www.lryc.cn/news/258714.html

相关文章:

  • 【Spark精讲】Spark作业执行原理
  • Docker容器:Centos7搭建Docker镜像私服harbor
  • ClickHouse安装和部署
  • Spring Cloud Gateway中对admin端点进行认证
  • 2. 如何通过公网IP端口映射访问到设备的vmware虚拟机的ubuntu服务器
  • 配置android sudio出现的错误
  • 【初阶C++】前言
  • MAC IDEA Maven Springboot
  • Angular13无法在浏览器debug
  • H.264与H.265(HEVC):视频编码的演进
  • Python从入门到精通九:Python异常、模块与包
  • 无需公网IP联机Minecraft,我的世界服务器本地搭建教程
  • 机器学习-SVM(支持向量机)
  • 保姆级:Windows Server 2012上安装.NET Framework 3.5
  • 昇腾910安装驱动出错,降低Centos7.6的内核版本
  • LeetCode刷题日志-73矩阵置零
  • 基于Python+WaveNet+MFCC+Tensorflow智能方言分类—深度学习算法应用(含全部工程源码)(四)
  • 文件操作及函数
  • 阿里云国际版无法远程连接Windows服务器的排查方法
  • 华清远见嵌入式学习——QT——作业4
  • Visuial Studio 打开 Unity 脚本时,脚本继承MonoBehaviour暂时失效为白色的解决方法
  • CentOS使用kkFileView实现在线预览word excel pdf等
  • 黑豹程序员-EasyExcel实现导出
  • 【项目小结】优点分析
  • 已经写完的论文怎么降低查重率 papergpt
  • 科研论文中PPT图片格式选择与转换:EPS、SVG 和 PDF 的比较
  • mybatis xml 热部署
  • MySQL的事务以及springboot中如何使用事务
  • docker二 redis单机安装
  • 【解决】Vue elementUI table表格 列错位/滑动后切换每页显示数后错位/表格使用fixed后错位...