LeetCode简单题之删除字符使字符串变好
生活随笔
收集整理的這篇文章主要介紹了
LeetCode简单题之删除字符使字符串变好
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
一個字符串如果沒有 三個連續 相同字符,那么它就是一個 好字符串 。
給你一個字符串 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 只包含小寫英文字母。
來源:力扣(LeetCode)
解題思路
??這個題可以直接模擬來進行,但是會比較麻煩,處理刪除將會導致index發生變化,從而可能需要預留空白進行邏輯刪除或者考慮刪除后從新組合的情況,因此,我們從另外一個角度來考慮問題,即重新來組成一個符合條件的字符串用給定順序的元素。
class Solution:def makeFancyString(self, s: str) -> str:if len(s)<3:return stemp=s[0]+s[1]for i in range(2,len(s)):if s[i]!=temp[-1] or s[i]!=temp[-2]: #如果當前元素和它前面的兩個元素中全部相同則不需要添加入重新構成的字符串。temp+=s[i]return temp
總結
以上是生活随笔為你收集整理的LeetCode简单题之删除字符使字符串变好的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之找出两数组的不同
- 下一篇: LeetCode简单题之二进制表示中质数