HDU 2057 A + B Again(16进制加法)
939
2022-08-22
[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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~