C/C++教程

leetcode443. 压缩字符串

本文主要是介绍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();
    }
};
这篇关于leetcode443. 压缩字符串的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!