Leetcode周赛5193. 删除字符使字符串变好
生活随笔
收集整理的這篇文章主要介紹了
Leetcode周赛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" 。提示:
- 1 <= s.length <= 105
- s?只包含小寫英文字母。
解題代碼
class Solution {public static void main(String[] args) {// write your code hereSolution solution = new Solution();String s = solution.makeFancyString("leeetcode");System.out.println(s);}public String makeFancyString(String s) {int n = s.length();if (n <= 2) {return s;}StringBuilder res = new StringBuilder();res.append(s.charAt(0));res.append(s.charAt(1));for (int i = 2; i < n; i++) {int resLength = res.length();char b0 = res.charAt(resLength - 2);char b1 = res.charAt(resLength - 1);char b2 = s.charAt(i);if (!(b2 == b1 && b2 == b0)) {res.append(s.charAt(i));}}return res.toString();} } 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Leetcode周赛5193. 删除字符使字符串变好的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FastAPI使用async?乱用asy
- 下一篇: Leetcode周赛5827. 检查操作