华为机试二星题--九宫格按键输入

d = {0: ' ', 1: ',.', 2: 'abc', 3: 'def', 4: 'ghi', 5: 'jkl', 6: 'mno', 7: 'pqrs', 8: 'tuv', 9: 'wxyz', '/': ''}
n = input()
n += '*'
s = ''
Flag = False
i = 0
while i < len(n) - 1:
    if n[i] == "#":
        Flag = not Flag
        i+=1
        continue
    if not Flag and n[i].isdigit():
        s += n[i]
    if Flag and n[i]!='/':
        count=0 #count初始化是0而不是1是因为字符串第一位的序号是0
        while n[i + 1] == n[i]:
            count += 1
            i += 1
        if n[i] == '1':
            s += d[int(n[i])][count % 2]
        elif n[i] == '7'&nbs***bsp;n[i] == '9':
            s += d[int(n[i])][count % 4]
        else:
            s += d[int(n[i])][count % 3]
    i += 1


全部评论

相关推荐

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