[leetcode] 1309. Decrypt String from Alphabet to Integer Mapping

网友投稿 939 2022-08-22

[leetcode] 1309. Decrypt String from Alphabet to Integer Mapping

[leetcode] 1309. Decrypt String from Alphabet to Integer Mapping

Description

Given a string s formed by digits (‘0’ - ‘9’) and ‘#’ . We want to map s to English lowercase characters as follows:

Characters (‘a’ to ‘i’) are represented by (‘1’ to ‘9’) respectively.Characters (‘j’ to ‘z’) are represented by (‘10#’ to ‘26#’) respectively.

Return the string formed after mapping.

It’s guaranteed that a unique mapping will always exist. Example 1:

Input: s = "10#11#12"Output: "jkab"Explanation: "j" -> "10#" , "k" -> "11#" , "a" -> "1" , "b" -> "2".

Example 2:

Input: s = "1326#"Output: "acz"

Example 3:

Input: s = "25#"Output: "y"

Example 4:

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

Constraints:

1 <= s.length <= 1000s[i] only contains digits letters (‘0’-‘9’) and ‘#’ letter.s will be valid string such that mapping is always possible.

分析

题目的意思是:把数字字符串转换为单词,我的思路很直接,遍历的时候分有#号和没#号两种分别处理就行了。我看了一下其他人的实现,比较巧妙。数字总共到26,所以从后往前进行替换就行了,大的数带#号的,就被先替换,剩下的就是个位数了,所以也很快。

代码

class Solution: def freqAlphabets(self, s: str) -> str: n=len(s) d={} for i,ch in enumerate('abcdefghijklmnopqrstuvwxyz'): d[str(i+1)]=ch res='' i=0 while(i

参考文献

​​[LeetCode] Python 3 (two lines) (beats 100%) (16 ms) (With Explanation)​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:iOS的那些面试(ios面试基础知识)
下一篇:[leetcode] 922. Sort Array By Parity II
相关文章

 发表评论

暂时没有评论,来抢沙发吧~