■ 题目描述
九宫格按键输入,判断输出,有英文和数字两个模式,默认是数字模式,数字模式直接输出数字,英文模式连续按同一个按键会依次出现这个按键上的字母,如果输入”/”或者其他字符,则循环中断。
要求输入一串按键,输出屏幕显示。
输入描述:
输入范围为数字 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'continueans += iif model == 'str':if i == '#':model = 'digit'if a:b = len(dic[a[0]])ans += dic[a[0]][(nums - 1) % b]a = ''continueelse:if nums == 0 and i != '/':nums += 1a = [i, nums]continueif nums == 0 and i == '/':continueif i == a[0]:nums += 1a[1] += +1continueif i != a[0] and i != '/':b = len(dic[a[0]])ans += dic[a[0]][(nums - 1) % b]nums = 1a = [i, nums]if i == '/':b = len(dic[a[0]])ans += dic[a[0]][(nums-1) % b]nums = 0continue
if a:b = len(dic[a[0]])ans += dic[a[0]][(nums-1) % b]
print(ans)