Leetcode周赛5193. 删除字符使字符串变好
生活随笔
收集整理的這篇文章主要介紹了
Leetcode周赛5193. 删除字符使字符串变好
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
一個(gè)字符串如果沒(méi)有?三個(gè)連續(xù)?相同字符,那么它就是一個(gè)?好字符串?。
給你一個(gè)字符串?s?,請(qǐng)你從?s?刪除?最少?的字符,使它變成一個(gè)?好字符串?。
請(qǐng)你返回刪除后的字符串。題目數(shù)據(jù)保證答案總是?唯一的?。
示例 1:
輸入:s = "leeetcode" 輸出:"leetcode" 解釋: 從第一組 'e' 里面刪除一個(gè) 'e' ,得到 "leetcode" 。 沒(méi)有連續(xù)三個(gè)相同字符,所以返回 "leetcode" 。示例 2:
輸入:s = "aaabaaaa" 輸出:"aabaa" 解釋: 從第一組 'a' 里面刪除一個(gè) 'a' ,得到 "aabaaaa" 。 從第二組 'a' 里面刪除兩個(gè) 'a' ,得到 "aabaa" 。 沒(méi)有連續(xù)三個(gè)相同字符,所以返回 "aabaa" 。示例 3:
輸入:s = "aab" 輸出:"aab" 解釋:沒(méi)有連續(xù)三個(gè)相同字符,所以返回 "aab" 。提示:
- 1 <= s.length <= 105
- s?只包含小寫(xiě)英文字母。
解題代碼
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位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Leetcode周赛5193. 删除字符使字符串变好的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: FastAPI使用async?乱用asy
- 下一篇: Leetcode周赛5827. 检查操作