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