首页 > 其他 > 详细

面试题

时间:2019-06-06 00:45:48      阅读:130      评论:0      收藏:0      [点我收藏+]
‘‘‘
字符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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!