文字a−z、A−Zは、1〜26に符号化することができる.「A」->「1」、「a」->「1」、「B」->「2」、「b」->「2」、「Z」->「26」、「z」->「26」数字のシーケンスを入力し、どのように計算しますか
828 ワード
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