5193. 刪除字符使字符串變好
一個字符串如果沒有 三個連續?相同字符,那么它就是一個 好字符串?。
給你一個字符串?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” 。
解題思路
當遇到3個連續字符時,不加入最終最終結果的字符串,最后就可以保證結果字符串是好字符串
代碼
class Solution {public String makeFancyString(String s) {char pre=s.charAt(0);int cnt=1,res=0;StringBuilder stringBuilder=new StringBuilder();stringBuilder.append(pre);for (int i=1;i<s.length();i++){if(s.charAt(i)==pre){if (++cnt<=2){stringBuilder.append(s.charAt(i));}}else{cnt=1;pre=s.charAt(i);stringBuilder.append(pre);}}return stringBuilder.toString();}
}