leetcode443. 压缩字符串

题目: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();
    }
};
上一篇:(map集合应用)统计出其中英文字母、空格、数字和其它字符的数量


下一篇:01-动态规划专项-力扣第五题