[字符串]leetcode5303:解码字母(easy)

题目:

5303. 解码字母到整数映射

题解:

  • 起初在打比赛的时候用map写的,太傻了,比赛完了看了别人的代码才恍然大悟,原来可以直接用字符相加就好了。
  • 注意点:对于两位数字转换为字母时,我们需要将其转换为数字后,再进行'a'的移位;对于一位数字转换为字母时,我们直接将s[i]-'1’转换为数字,然后进行'a'的移位。

代码如下:

class Solution {
public:
    string freqAlphabets(string s) {
        string res;
        int i=0,n=s.size();
        while(i<n)
        {
            if(i+2<n&&s[i+2]=='#'){//注意将两位数字转换为整数后,再进行a的移位
                res.push_back('a'+stoi(s.substr(i,2))-1);
                i+=3;
            }
            else{//1-9的字符移动0-8位,对应的字母范围位a-i
                res.push_back('a'+s[i]-'1');
                i++;
            }
        }
        return res;
    }
};
发布了484 篇原创文章 · 获赞 149 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_43152052/article/details/103848629