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

这篇具有很好参考价值的文章主要介绍了华为OD试题二(文件目录大小、相对开音节、找最小数)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 文件目录大小

题目描述:
一个文件目录的数据格式为:目录id,本目录中文件大小,(子目录id
列表)。其中目录id全局唯一,取值范围[1,200],本目录中文件大小范
围[1,1000],子目录id列表个数[0,10]

例如:1 20 (2,3)表示目录1中文件总大小是20,有两个子目录,id分	
别是2和3

现在输入一个文件系统中所有目录信息,以及待查询的目录 id ,返
回这个目录和及该目录所有子目录的大小之和。

参考代码:文章来源地址https://www.toymoban.com/news/detail-756463.html

# 核心 递归遍历目录
# 测试数据
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 = 0
	
	for line in data:
		x,y,z = line.split()
		if x == index:
			count += int(y)
			z = z[1:-1]
			if z == ''return count
			else:
				if ',' in z:
					index_list = z.split(',')
					for _ in index_list:
						count += fun(_)
				else:
					count += fun(z)
	return count
	
res = 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 = True
		for _ in s:
			if _ not in char_str:
				flag = False
				break
		if flag:
			s_list = list(s)
			s_list.reverse()
			new_list.append(''.join(s_list))
		else:
			new_list.append(s)
	
	# 统计 开音节个数
	count = 0
	for 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的值最小。
输入: 2615371
			4
输出: 131
说明: 移除 2,6,5,7 这4个数字,剩下 1、3、1 按原有顺序排列组成
131 为最小值。

算法可以参考下图:
华为OD试题二(文件目录大小、相对开音节、找最小数),OD试题,华为od,python,算法

参考代码:

# 测试数据
test_data = "2615371"
# 移除的个数
num = 4

def fun(temp_str,num):
	# 字符转列表
	str_list = list(temp_str)
	# 字符串 转成 整形
	str_list = [ int(i) for i in str_list ]
	# 用于确定 要删除数的范围
	count = len(str_list) - num
	cur = -(count - 1)
	
	# 存放最后结果
	t_str = ''
	pos = -1
	for 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 += 1
	print(t_str)
	
fun(test_data,num)

到了这里,关于华为OD试题二(文件目录大小、相对开音节、找最小数)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 华为OD-整数对最小和

    给定两个整数数组array1、array2,数组元素按升序排列。假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值   代码实现

    2024年02月11日
    浏览(25)
  • 华为OD机试题 - 五键键盘(JavaScript)| 含思路

    华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典 【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南 华为od机试,独家整理 已参加机试人员的实战技巧 参加华为od机试,一定要注意不要完全背诵代码,需要

    2024年02月11日
    浏览(29)
  • 华为OD机试题中 动态规划和贪心算法例题

    在 ACM 比赛中,有许多常见的编程算法和数据结构经常被使用。本系列博客会罗列各种常见算法,以及其代表性例题。 这部分内容可以用于类似华为 OD 机考学习。 动态规划是一种将复杂问题分解为简单子问题并使用子问题的解来构建更大问题的方法。它通常用于解决最长公

    2024年01月16日
    浏览(36)
  • 华为OD机试题,用 Java 解【最远足迹】问题

    华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南 华为od机试,独家整理 已参加机试人员的实战技巧 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典 使用说明 参加华为od机试,一定要注意不要

    2023年04月23日
    浏览(28)
  • 华为OD机试题,用 Java 解【蛇形矩阵】问题

    华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】 华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】 华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】 华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】 华为OD机试 - 组成最大数(Java) | 机试题算法思

    2023年04月09日
    浏览(26)
  • 华为OD机试题,用 Java 解【矩阵扩散】问题

    华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】 华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】 华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】 华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】 华为OD机试 - 组成最大数(Java) | 机试题算法思

    2024年02月13日
    浏览(33)
  • 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典

    在 2023 年,Python 已成为广泛使用的编程语言之一,被广泛应用于数据科学、机器学习、人工智能等领域。解华为 OD 机试题也不例外。 使用 Python 编写程序可以极大地提高解题效率和精度。Python 具有简单易学、语法简洁、代码可读性高等特点,同时也具备丰富的第三方库和工

    2024年01月22日
    浏览(40)
  • 华为OD机试题-表演赛游戏分组(java解法)

    部门准备举办一场王者荣耀表演赛,有 10 名游戏爱好者参与,分 5 为两队,每队 5 人每位参与者都有一个评分,代表着他的游戏水平。 为了表演赛尽可能精彩,我们需要把 10 名参赛者分为实力尽量相近的两队。一队的实力可以表示为这一队5名队员的评分总和。 现在给你

    2024年04月15日
    浏览(36)
  • 华为OD机试题,用 Java 解【去除多余空格】问题

    华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南 华为od机试,独家整理 已参加机试人员的实战技巧 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典 使用说明 参加华为od机试,一定要注意不要

    2024年02月10日
    浏览(32)
  • 华为OD机试题【字符统计】【2023 B卷 100分】

    🏆 《华为机试真题》专栏含2023年牛客网面经、华为面经试题、华为OD机试真题最新试题。 🏆 华为机试有三道题,第一道和第二道属于简单题,分值为100分,第三道为困难题,分值为200分,总分400分,150分钟考试时间。 🏆 如果您在准备华为的面试,期间有想了解的可以私

    2024年02月08日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包