华为OD机试题目享(0517)

第三道题目:九宫格按键输入

九宫格按键输入,输出显示内容,有英文和数字两种模式:默认是数字模式,当输入以#开头是切换为字母模式,当输入中包含“/”时,则循环中断,且“/”仅适用于字母模式,对数字模式无效。字符对应关系如图。
要求输入一串按键,输出屏幕显示内容。


输入描述:
输入范围为数字 0~9 和字符 ‘#’、’/’,输出屏幕显示,例如:
在数字模式下,输入 1234,显示 1234
在英文模式下,输入 1234,显示,adg

输出描述:
#用于切换模式,默认是数字模式,执行 # 后切换为英文模式;
/表示延迟,例如在英文模式下,输入 22/222,显示为 bc;
英文模式下,多次按同一键,例如输入 22222,显示为 b;

示例1:输入
2222/22
输出:
222222
示例2:输入
#2222/22
输出:
ab
示例3:
输入:
#222233
输出:
ae


代码段:
import sys
def func(s):
	mode, res = None, ''
	if '#' in s:
		mode = s[0]
		num = s[1:]
	else:
		num = s
	dic = {1:',.', 2:'abc', 3:'def', 4:'ghi', 5:'jkl',
          6:'mno', 7:'pqrs', 8:'tuv', 9:'wxyz', 0:' '}
	if mode is None:
		if '/' in num:
			res = num.replace('/', '')
		else:
			res = num
	else:
		d = {}
		if '/' in num:
			spt = num.split('/')
			ch1, ch2 = spt[0], spt[1]
			for key in ch1:
				d[key] = d.get(key, 0) + 1
			for key in d:
				idx = d[key] % len(dic[int(key)]) - 1
				res += dic[int(key)][idx]
			d.clear()
			for key in ch2:
				d[key] = d.get(key, 0) + 1
			for key in d:
				idx = d[key] % len(dic[int(key)]) - 1
				res += dic[int(key)][idx]
 
		else:
			for key in num:
				d[key] = d.get(key, 0) + 1
			for key in d:
				idx = d[key] % len(dic[int(key)]) - 1
				res += dic[int(key)][idx]
	return res
 
if __name__ == '__main__':
	# s = sys.stdin.readline().strip()
	# s = '#2222/22'   	 # ab
	# s = '#222233'      # ae
	# s = '#222/233'       # cae
	# s = '2222/22'      # ab
	s = '1222222'       # 1222222
	print(func(s))



————————————————
版权声明:本文为CSDN博主「_JeanW_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_70506990/article/details/124832014
#华为OD机考##笔试题目##Python#
全部评论
英文输入/可能不止一个吧,split后不应该只chr1,chr2考虑
1
送花
回复
分享
发布于 2022-05-23 09:24
会不会输出既是英文字母又是数字
1
送花
回复
分享
发布于 2022-05-26 23:21
滴滴
校招火热招聘中
官网直投
你好,另外两道题可以分享一下吗😘
点赞
送花
回复
分享
发布于 2022-05-21 02:18
来个php版本的
点赞
送花
回复
分享
发布于 2022-05-27 00:11
华为机试真题 https://www.nowcoder.com/discuss/952553
点赞
送花
回复
分享
发布于 2022-06-17 23:31
没有任何代码基础的UX要咋整办考python
点赞
送花
回复
分享
发布于 2022-08-18 16:25 广东

相关推荐

点赞 评论 收藏
转发
2 36 评论
分享
牛客网
牛客企业服务