题目考察的知识点:字符串

题目解答方法的文字分析:遍历chars数组,记录相同元素的个数,不相同,则将count转为字符串,然后插入到v数组即可。

本题解析所用的编程语言:c++

#include <algorithm>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param chars char字符型vector 
     * @return char字符型vector
     */
vector<char> compress(vector<char>& chars)
{
    // write code here
    vector<char> v;
    chars.push_back('0'); //防止越界
    for (int i = 0; i < chars.size() - 1; ++i)
    {
        int count = 1;
        while (chars[i] == chars[i + 1])
        {
            ++count;
            ++i;
        }
        v.push_back(chars[i]);
        if (count > 1)
        {
            string num = to_string(count);
            for (int i = 0; i < num.size(); ++i)
                v.push_back(num[i]);
        }
    }
    return v;
}
};