字符串壓縮。利用字符重複出現的次數,編寫一種方法,實現基本的字符串壓縮功能。比如,字符串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不會報錯?不會越界麼?