1957. Delete Characters to Make Fancy String

题目 1957. Delete Characters to Make Fancy String

image-55d333b0

思路分析

image-abcb895b

代码实现

class Solution {
public:
    string makeFancyString(string s) {
        int len=s.size();
        vector<int> live(len, 1);

        int cnt=1;
        for(int i=1;i<len;i++){
            if(s[i]==s[i-1]){
                cnt++;
            }else{
                cnt=1;
            }
            if(cnt>=3){
                live[i]=0;
            }
        }
        string ans;
        for(int i=0;i<len;i++){
            if(live[i]==1){
                ans+=s[i];
            }
        }
        return ans;
    }
};
class Solution {
    public String makeFancyString(String s) {
        //String 不可变 不好直接删除 用一个数组记录哪个位置需要留下
        int len=s.length();
        // System.out.println(len);
        int[] live = new int[len];
        Arrays.fill(live, 1);

        int cnt=1;
        for(int i=1;i<len;i++){
            if (s.charAt(i) == s.charAt(i - 1)){
                cnt++;
            }else{
                cnt=1;
            }
            if(cnt>=3){
                live[i]=0;
            }
        }
        
        StringBuilder ans = new StringBuilder();
        for(int i=0;i<len;i++){
            if(live[i]==1){
               ans.append(s.charAt(i));
            }
        }
        return ans.toString();
    }
}

同类题型

视频讲解