字符串壓縮。利用字符重復出現的次數,編寫一種方法,實現基本的字符串壓縮功能。比如,字符串aabcccccaaa
會變為a2b1c5a3
。若“壓縮”后的字符串沒有變短,則返回原先的字符串。你可以假設字符串中只包含大小寫英文字母(a至z)。
示例1:
輸入:"aabcccccaaa"輸出:"a2b1c5a3"
示例2:
輸入:"abbccd"輸出:"abbccd"解釋:"abbccd"壓縮后為"a1b2c2d1",比原字符串長度更長。
代碼如下:
class Solution {
public:string compressString(string S) {if(S.size()==0){return S;}string res;//定義新的字符串,存放壓縮后的字符串int sum=1;//記錄相等字符的個數for(int i=0;i<S.size();i++){if(S[i]==S[i+1])//當相鄰的字符相等時{sum++;//個數++}else{res+=S[i];//存入新的字符串里res+=to_string(sum);//將int型sum轉化為string類型,并且存入到字符串里sum=1;}}return S.size()<=res.size()?S:res;//原來的數組與新的數組,返回長度較小的數組,如果兩個數組的長度相等,返回原來的數組}
};