面试题

'''
字符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])
原文地址:https://www.cnblogs.com/chengege/p/10982715.html