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

简介: 给你一个字符串 s,它由数字('0' - '9')和 '#' 组成。我们希望按下述规则将 s 映射为一些小写英文字符

题目

给你一个字符串 s,它由数字('0' - '9')和 '#' 组成。我们希望按下述规则将 s 映射为一些小写英文字符:

字符('a' - 'i')分别用('1' - '9')表示。
字符('j' - 'z')分别用('10#' - '26#')表示。 
返回映射之后形成的新字符串。

题目数据保证映射始终唯一。

示例 1:

输入:s = "10#11#12"
输出:"jkab"
解释:"j" -> "10#" , "k" -> "11#" , "a" -> "1" , "b" -> "2".
示例 2:

输入:s = "1326#"
输出:"acz"
示例 3:

输入:s = "25#"
输出:"y"
示例 4:

输入:s = "12345678910#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#"
输出:"abcdefghijklmnopqrstuvwxyz"

提示:

1 <= s.length <= 1000
s[i] 只包含数字('0'-'9')和 '#' 字符。
s 是映射始终存在的有效字符串。

解题思路

class Solution:
    def freqAlphabets(self, s: str) -> str:
        #寻找所有#的开头索引
        import re
        twoNumIndex = [m.start()-2 for m in re.finditer("#", s)]
        for i in twoNumIndex[::-1]:
            char = chr(96+int(s[i:i+2]))
            s = s[:i] + char + s[i+3:]
        for j in range(len(s)):
            if s[j].isdigit():
                char = chr(96 + int(s[j]))
                s = s[:j] + char + s[j+1:]
        return s
目录
相关文章
|
23天前
|
算法 Java
[Java·算法·简单] LeetCode 13. 罗马数字转整数 详细解读
[Java·算法·简单] LeetCode 13. 罗马数字转整数 详细解读
27 0
|
23天前
|
算法 测试技术 C#
【单调栈】LeetCode2030:含特定字母的最小子序列
【单调栈】LeetCode2030:含特定字母的最小子序列
|
23天前
【Leetcode】两数之和,给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
【Leetcode】两数之和,给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
|
23天前
leetcode代码记录(第一个出现两次的字母
leetcode代码记录(第一个出现两次的字母
13 2
|
23天前
leetcode代码记录(有效的字母异位词
leetcode代码记录(有效的字母异位词
13 1
|
23天前
leetcode代码记录(整数拆分
leetcode代码记录(整数拆分
17 0
|
23天前
[leetcode~数位动态规划] 2719. 统计整数数目 hard
[leetcode~数位动态规划] 2719. 统计整数数目 hard
|
23天前
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
23天前
【力扣】1832.判断句子是否为全字母句
【力扣】1832.判断句子是否为全字母句
|
23天前
|
存储 算法
leetcode1237. 找出给定方程的正整数解
leetcode1237. 找出给定方程的正整数解
9 0