■ 题目描述
九宫格按键输入,判断输出,有英文和数字两个模式,默认是数字模式,数字模式直接输出数字,英文模式连续按同一个按键会依次出现这个按键上的字母,如果输入”/”或者其他字符,则循环中断。
要求输入一串按键,输出屏幕显示。
输入描述:
输入范围为数字 0~9 和字符’#’、’/’,输出屏幕显示,例如,
在数字模式下,输入 1234,显示 1234
在英文模式下,输入 1234,显示,adg
输出描述:
- #用于切换模式,默认是数字模式,执行#后切换为英文模式;
- /表示延迟,例如在英文模式下,输入 22/222,显示为 bc;
- 英文模式下,多次按同一键,例如输入 22222,显示为 b;
示例 1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
123#222235/56
输出
123adjjm
以下代码为本人原创,可以供大家参考,若有不足之处,感谢指出!!!!
word = input()
dic = {'0': [''], '1': [',', '.'], '2': ['a', 'b', 'c'],
'3': ['d', 'e', 'f'], '4': ['g', 'h', 'i'],
'5': ['j', 'k', 'l'], '6': ['m', 'n', 'o'],
'7': ['p', 'q', 'r', 's'],
'8': ['t', 'u', 'v'],
'9': ['w', 'x', 'y']}
model = 'digit'
ans = ''
nums = 0
a = ''
for i in word:
if model == 'digit':
if i == '#':
model = 'str'
continue
ans += i
if model == 'str':
if i == '#':
model = 'digit'
if a:
b = len(dic[a[0]])
ans += dic[a[0]][(nums - 1) % b]
a = ''
continue
else:
if nums == 0 and i != '/':
nums += 1
a = [i, nums]
continue
if nums == 0 and i == '/':
continue
if i == a[0]:
nums += 1
a[1] += +1
continue
if i != a[0] and i != '/':
b = len(dic[a[0]])
ans += dic[a[0]][(nums - 1) % b]
nums = 1
a = [i, nums]
if i == '/':
b = len(dic[a[0]])
ans += dic[a[0]][(nums-1) % b]
nums = 0
continue
if a:
b = len(dic[a[0]])
ans += dic[a[0]][(nums-1) % b]
print(ans)