Leetcode 1957. 删除字符使字符串变好(可以,一次过)

在这里插入图片描述
一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 。

给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 。

请你返回删除后的字符串。题目数据保证答案总是 唯一的 。

示例 1:

输入:s = "leeetcode"
输出:"leetcode"
解释:
从第一组 'e' 里面删除一个 'e' ,得到 "leetcode" 。
没有连续三个相同字符,所以返回 "leetcode" 。

示例 2:

输入:s = "aaabaaaa"
输出:"aabaa"
解释:
从第一组 'a' 里面删除一个 'a' ,得到 "aabaaaa" 。
从第二组 'a' 里面删除两个 'a' ,得到 "aabaa" 。
没有连续三个相同字符,所以返回 "aabaa" 。

示例 3:

输入:s = "aab"
输出:"aab"
解释:没有连续三个相同字符,所以返回 "aab" 。
 

提示:

  • 1 <= s.length <= 10^5
  • s 只包含小写英文字母。

Code:

class Solution {
public:
    string makeFancyString(string s) {
        string res;
        for(int i=0;i<s.size();i++)
        {
            if(res.size()>=3)
            {
                if(count(res.end()-3,res.end(),res.back())>=3)
                {
                    res.pop_back();
                }
            }
            res.push_back(s[i]);
            
        }
        if(count(res.end()-3,res.end(),res.back())>=3)
        {
            res.pop_back();
        }
        return res;
    }
};
posted @ 2022-06-09 14:43  萧海~  阅读(48)  评论(0编辑  收藏  举报