美文网首页
LeetCode-1309-解码字母到整数映射

LeetCode-1309-解码字母到整数映射

作者: 阿凯被注册了 | 来源:发表于2020-10-14 08:20 被阅读0次

    给你一个字符串 s,它由数字('0' - '9')和 '#' 组成。我们希望按下述规则将 s 映射为一些小写英文字符:
    字符('a' - 'i')分别用('1' - '9')表示。
    字符('j' - 'z')分别用('10#' - '26#')表示。
    返回映射之后形成的新字符串。
    题目数据保证映射始终唯一。


    image.png

    解题思路:

    1. 映射产出字典a;
    2. 倒序遍历s,遇#号再获取前两位。

    Python3代码:

    class Solution:
        def freqAlphabets(self, s: str) -> str:
            a = {}
            for i in range(1, 10):
                a[i] = chr(ord('a')+i-1)
            for i in range(10, 27):
                a[str(i)+'#'] = chr(ord('j')+i-10)
            i = len(s)-1
            ans=[]
            while i >= 0:
                if s[i] != '#':
                    ans.append(a[int(s[i])])
                    i-=1
                else:
                    ans.append(a[s[i-2]+s[i-1]+s[i]])
                    i-=3
            ans.reverse()
            return ''.join(ans)
    

    相关文章

      网友评论

          本文标题:LeetCode-1309-解码字母到整数映射

          本文链接:https://www.haomeiwen.com/subject/ylnbpktx.html