题目:443. 压缩字符串
class Solution { public: int compress(vector<char>& chars) { int i = 0; while(i < chars.size()) { char c = chars[i]; // int cnt1 = count(chars.begin(), chars.end(), c); // 统计个数 int cnt1 = 1; for(int j=i+1; j<chars.size(); j++) { if(chars[j] == c) cnt1++; else break; } if(cnt1 > 1) { // 数字转字符串 string str; stringstream ss; ss << cnt1; ss >> str; int cnt2 = str.size(); // 在指定位置前插入输入容器区间的内容: chars.insert(chars.begin()+i+cnt1, str.begin(), str.end()); // 插入cnt2个字符 // 删掉cnt1-1个字符,保留1个: chars.erase(chars.begin()+i, chars.begin()+i+cnt1-1); i = i + cnt2 + 1; } else i++; } return chars.size(); } };