前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >笔试题

笔试题

作者头像
用户2337871
发布2019-12-26 17:30:46
3940
发布2019-12-26 17:30:46
举报
文章被收录于专栏:gitgit
代码语言:javascript
复制
'''
字符A-Z可以编码为1-26。"A"->"1", "Z"->"26"
现在输入一个数字序列,计算有多少种方式可以解码成字符A-Z组成的序列。
例如:
(1)输入:19
   输出:2
(2)输入:268
   输出:2
(3)输入:219
   输出:3
'''
代码语言:javascript
复制
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))
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档