1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Solution { public: string compressString(string S) { string ret; int curNum = 1; char curVal = S.front(); for(int i = 1; i < S.size(); ++i) { if(S[i] != curVal) { ret.append(curVal + to_string(curNum)); curVal = S[i]; curNum = 1; } else ++curNum; } ret.append(curVal + to_string(curNum)); return ret.size() >= S.size() ? S : ret; } };
|