''' 字符A-Z可以编码为1-26。"A"->"1", "Z"->"26" 现在输入一个数字序列,计算有多少种方式可以解码成字符A-Z组成的序列。 例如: (1)输入:19 输出:2 (2)输入:268 输出:2 (3)输入:219 输出:3 ''' def how_many_ways(digitarray): digitarray = str(digitarray).lstrip('0') length = len(digitarray) if length == 0: return 0 li = list(range(length + 1)) li[0] = 1 print(li) for i in range(1, length + 1): if digitarray[i - 1] == '0': print(digitarray[i - 1]) li[i] = 1 else: li[i] = li[i - 1] if i > 1 and (int(digitarray[i - 2]) == 2 and int(digitarray[i - 1]) <= 6) or int(digitarray[i - 2]) == 1: li[i] += li[i - 2] print(li) print(li[length])