原題**:
例如,字串aabcccccaaa
可壓縮為a2b1c5a3
。而如果壓縮後的字元數不小於原始的字元數,則返回原始的字串。
可以假設字串僅包括a-z的字母。
您在真實的面試中是否遇到過這個題? 是
str=aabbcc
返回aabbcc
str=aaaa
返回a4
標籤
字串處理
思路:設定乙個字元標誌,初始為str,計數器為1,result為空串。下標從1開始遍歷字串,如果str【i】等於字元標誌,計數器加1;否則將標誌字元與計數器轉成字串,連線在result後面。同時,更新標誌字元與計數器。
尤其注意尾部字元的處理,在迴圈外面增加語句塊,將最後的字元(重複或者非重複)連線在result後面。
ac**:
classsolution
string result=""
;
char ch=str[0
];
int count=1
;
for (int i=1;i)
else
}//不要忘記遍歷到最後乙個字元的情況;
string
st; int2str(count,st);
result=result+ch+st;
if (result.size()>=n)
return
result;
}void int2str(const
int &int_tmp,string &string_tmp)
};
參考:c++中int、string等常見型別轉換
lintcode 213 字串壓縮
設計一種方法,通過給重複字元計數來進行基本的字串壓縮。例如,字串 aabcccccaaa 可壓縮為 a2b1c5a3 而如果壓縮後的字元數不小於原始的字元數,則返回原始的字串。可以假設字串僅包括 a z 的字母。樣例樣例 1 輸入 str aabcccccaaa 輸出 a2b1c5a3 樣例 2 輸...
213 字串壓縮 LintCode領扣程式設計題
描述 設計一種方法,通過給重複字元計數來進行基本的字串壓縮 例如,字串 aabcccccaaa 可壓縮為 a2b1c5a3 而如果壓縮後的字元數不小於原始的字元數,則返回原始的字串。可以假設字串僅包括 a z 的字母。樣例樣例 1 輸入 str aabcccccaaa 輸出 a2b1c5a3 樣例 ...
1 6 字串壓縮
c code intcomputecompressedlength const string s return compressedlength string stringcompression const string s std string compressed compressedlengt...