Python 中移除字串中所有相鄰重複字元
假設我們有一個由小寫字母組成的字串 S;將執行重複字元移除操作。這將透過選擇兩個相鄰且相等的字母並將其移除來完成。
我們將重複從 S 中移除重複字元,直到沒有剩餘的重複字元。
在所有此類重複字元移除完成後返回字串。保證答案是唯一的。
假設字串是“abbacaca”,則答案將是“caca”。首先刪除重複字元 bb,然後字串變為“aacaca”,然後移除 aa,然後字串變為“caca”,然後沒有這樣的重複字元了。
為了解決這個問題,我們將遵循以下步驟:
- 定義一個數組 st,並初始化 i := 0
- 當 i < 字串長度時:
- 如果 st 包含一些元素,並且 st 的最後一個元素 = st[i],則將 i 加 1,並從 st 中刪除最後一個元素
- 否則將 string[i] 新增到 st 中,將 i 加 1
- 最後將 st 中的所有元素連線成一個字串並返回
示例
讓我們看看下面的實現以獲得更好的理解:
class Solution(object): def removeDuplicates(self, S): st = [] i = 0 while i < len(S): if len(st)!=0 and st[-1]==S[i]: i+=1 st.pop(-1) else: st.append(S[i]) i+=1 return "".join(i for i in st) ob1 = Solution() print(ob1.removeDuplicates("abbacaca"))
輸入
"abbacaca"
輸出
"caca"
廣告