LeetCode简单题之解码字母到整数映射
題目
給你一個(gè)字符串 s,它由數(shù)字(‘0’ - ‘9’)和 ‘#’ 組成。我們希望按下述規(guī)則將 s 映射為一些小寫英文字符:
字符(‘a(chǎn)’ - ‘i’)分別用(‘1’ - ‘9’)表示。
字符(‘j’ - ‘z’)分別用(‘10#’ - ‘26#’)表示。
返回映射之后形成的新字符串。
題目數(shù)據(jù)保證映射始終唯一。
示例 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] 只包含數(shù)字(‘0’-‘9’)和 ‘#’ 字符。
s 是映射始終存在的有效字符串。
來(lái)源:力扣(LeetCode)
解題思路
??一個(gè)簡(jiǎn)單的思路,由于題目給定的加密文是后綴碼從給定字符串的尾巴開始向前遍歷,碰到“#”的時(shí)候,便一次讀入三個(gè)字符并編譯成相應(yīng)的字母,如果沒(méi)有碰到“#”則一次讀入一個(gè)字符并編譯成相應(yīng)的字母。
class Solution:def freqAlphabets(self, s: str) -> str:a='abcdefghi'b='jklmnopqrstuvwxyz'n='123456789'd=dict()for i,j in zip(a,n):d[j]=ifor i,j in zip(range(10,27),b):d[str(i)+'#']=jtemp=''i=len(s)-1while i>-1:if s[i]=='#':temp=d[s[i-2:i+1]]+tempi-=3else:temp=d[s[i]]+tempi-=1return temp
總結(jié)
以上是生活随笔為你收集整理的LeetCode简单题之解码字母到整数映射的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode简单题之二叉树的最大深度
- 下一篇: LeetCode中等题之在排序数组中查找