leetcode面試題:字符串壓縮

字符串壓縮。利用字符重複出現的次數,編寫一種方法,實現基本的字符串壓縮功能。比如,字符串aabcccccaaa會變爲a2b1c5a3。若“壓縮”後的字符串沒有變短,則返回原先的字符串。你可以假設字符串中只包含大小寫英文字母(a至z)。

劃重點:

1.重複字符串提取個數
2.最後返回的字符串是 字符+字符出現個數
3.如果壓縮完字符串size大於等於原字符串size,則返回原先字符串。

比較要注意的是第三點,比如輸入bb,壓縮完是b2,則返回bb即可。還要要注意的是個數大於10的情況,可以使用to_string函數把整型換成字符串。

string compressString(string S) {
    string R;
    int num = 1;
    for(int i = 0; i < S.size(); i ++)
    {
        if(S[i+1] != S[i])
        {
            R += S[i] + to_string(num);
            num = 1;
        }
        else num++;
    }
    return R.size() >= S.size() ? S : R;
}

不知道爲什麼這裏用i+1不會報錯?不會越界麼?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章