We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
You are given a string s formed by digits and '#'. We want to map s to English lowercase characters as follows:
s
'#'
'a'
'i'
'1'
'9'
'j'
'z'
'10#'
'26#'
Return the string formed after mapping.
The test cases are generated so 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"
Constraints:
1 <= s.length <= 1000
这道题给了一个数字字符串,让解码成字母串,指定的规则是1到9分别对应a到i,j到z分别对应从 10# 到 26#,注意后面跟的井号表示这是个两位数,不然不好区分 26 到底是z,还是b和f。那么在解码的时候,这个井号就特别重要,因为它代表着解码的方式,而且对于当前位置来说,它的位置也是固定的,所以解码的方法也就有了:判断下下一个字符是否是井号,是的话解码一个两位数,当然要首先保证不会越界,需判断 i+2 小于n,同时 s[i+2] 是井号,然后即可解析出两位数,转化为对应的字母,之后别忘了i要自增2,因为要跳过井号。否则的话就只解析当前位置的数字,转化为a到i之间的字母,参见代码如下:
10#
26#
class Solution { public: string freqAlphabets(string s) { string res = ""; int n = s.size(); for (int i = 0; i < n; ++i) { if (i + 2 < n && s[i + 2] == '#') { res += (stoi(s.substr(i, 2)) - 1 + 'a'); i += 2; } else { res += (s[i] - '0' - 1 + 'a'); } } return res; } };
Github 同步地址:
#1309
参考资料:
https://leetcode.com/problems/decrypt-string-from-alphabet-to-integer-mapping/
https://leetcode.com/problems/decrypt-string-from-alphabet-to-integer-mapping/discuss/736309/C%2B%2B-0ms-solution
https://leetcode.com/problems/decrypt-string-from-alphabet-to-integer-mapping/discuss/500231/HashMap-Solution-JAVA
LeetCode All in One 题目讲解汇总(持续更新中...)
(欢迎加入博主的知识星球,博主将及时答疑解惑,并分享刷题经验与总结,快快加入吧~)
喜欢请点赞,疼爱请打赏❤️~.~
微信打赏
|
Venmo 打赏
---|---
The text was updated successfully, but these errors were encountered:
No branches or pull requests
You are given a string
s
formed by digits and'#'
. We want to maps
to English lowercase characters as follows:'a'
to'i'
) are represented by ('1'
to'9'
) respectively.'j'
to'z'
) are represented by ('10#'
to'26#'
) respectively.Return the string formed after mapping.
The test cases are generated so that a unique mapping will always exist.
Example 1:
Example 2:
Constraints:
1 <= s.length <= 1000
s
consists of digits and the'#'
letter.s
will be a valid string such that mapping is always possible.这道题给了一个数字字符串,让解码成字母串,指定的规则是1到9分别对应a到i,j到z分别对应从
10#
到26#
,注意后面跟的井号表示这是个两位数,不然不好区分 26 到底是z,还是b和f。那么在解码的时候,这个井号就特别重要,因为它代表着解码的方式,而且对于当前位置来说,它的位置也是固定的,所以解码的方法也就有了:判断下下一个字符是否是井号,是的话解码一个两位数,当然要首先保证不会越界,需判断 i+2 小于n,同时 s[i+2] 是井号,然后即可解析出两位数,转化为对应的字母,之后别忘了i要自增2,因为要跳过井号。否则的话就只解析当前位置的数字,转化为a到i之间的字母,参见代码如下:Github 同步地址:
#1309
参考资料:
https://leetcode.com/problems/decrypt-string-from-alphabet-to-integer-mapping/
https://leetcode.com/problems/decrypt-string-from-alphabet-to-integer-mapping/discuss/736309/C%2B%2B-0ms-solution
https://leetcode.com/problems/decrypt-string-from-alphabet-to-integer-mapping/discuss/500231/HashMap-Solution-JAVA
LeetCode All in One 题目讲解汇总(持续更新中...)
(欢迎加入博主的知识星球,博主将及时答疑解惑,并分享刷题经验与总结,快快加入吧~)
微信打赏
Venmo 打赏
---|---
The text was updated successfully, but these errors were encountered: