Python 实现
'''
字符a-z, A-Z可以编码为1-26。"A"->"1", "a"->"1", "B"->"2", "b"->"2", "Z"->"26", "z"->"26"
现在输入一个数字序列,计算有多少种方式可以解码成字符a-zA-Z组成的序列。
例如:
输入:19
输出:6
(ai, Ai, aI, AI, s, S)
输入:268
输出:12
输入:219
输出:16
'''
def how_many_ways(digitarray):
# implement here
digitarray=str(digitarray)
dp_list = [0] * (len(digitarray) + 1)
dp_list[0] = 1
for i in range(1, len(dp_list)):
if digitarray[i - 1] != '0':
dp_list[i] = dp_list[i - 1]*2
if i != 1 and '09' < digitarray[i - 2:i] < '27':
dp_list[i] += dp_list[i - 2]*2
print(dp_list)
print(dp_list[-1])
how_many_ways(219) # 结果16