日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

LeetCode简单题之删除字符使字符串变好

發(fā)布時(shí)間:2023/11/28 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode简单题之删除字符使字符串变好 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目

一個(gè)字符串如果沒(méi)有 三個(gè)連續(xù) 相同字符,那么它就是一個(gè) 好字符串 。
給你一個(gè)字符串 s ,請(qǐng)你從 s 刪除 最少 的字符,使它變成一個(gè) 好字符串 。
請(qǐng)你返回刪除后的字符串。題目數(shù)據(jù)保證答案總是 唯一的 。
示例 1:
輸入:s = “l(fā)eeetcode”
輸出:“l(fā)eetcode”
解釋:
從第一組 ‘e’ 里面刪除一個(gè) ‘e’ ,得到 “l(fā)eetcode” 。
沒(méi)有連續(xù)三個(gè)相同字符,所以返回 “l(fā)eetcode” 。
示例 2:
輸入:s = “aaabaaaa”
輸出:“aabaa”
解釋:
從第一組 ‘a(chǎn)’ 里面刪除一個(gè) ‘a(chǎn)’ ,得到 “aabaaaa” 。
從第二組 ‘a(chǎn)’ 里面刪除兩個(gè) ‘a(chǎn)’ ,得到 “aabaa” 。
沒(méi)有連續(xù)三個(gè)相同字符,所以返回 “aabaa” 。
示例 3:
輸入:s = “aab”
輸出:“aab”
解釋:沒(méi)有連續(xù)三個(gè)相同字符,所以返回 “aab” 。
提示:
1 <= s.length <= 10^5
s 只包含小寫英文字母。
來(lái)源:力扣(LeetCode)

解題思路

??這個(gè)題可以直接模擬來(lái)進(jìn)行,但是會(huì)比較麻煩,處理刪除將會(huì)導(dǎo)致index發(fā)生變化,從而可能需要預(yù)留空白進(jìn)行邏輯刪除或者考慮刪除后從新組合的情況,因此,我們從另外一個(gè)角度來(lái)考慮問(wèn)題,即重新來(lái)組成一個(gè)符合條件的字符串用給定順序的元素。

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]: #如果當(dāng)前元素和它前面的兩個(gè)元素中全部相同則不需要添加入重新構(gòu)成的字符串。temp+=s[i]return temp

總結(jié)

以上是生活随笔為你收集整理的LeetCode简单题之删除字符使字符串变好的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。