python 删除字符串中的所有相邻的重复项
生活随笔
收集整理的這篇文章主要介紹了
python 删除字符串中的所有相邻的重复项
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 刪除字符串中的所有相鄰的重復項
給出由小寫字母組成的字符串 S,重復項刪除操作會選擇兩個相鄰且相同的字母,并刪除它們。在 S 上反復執行重復項刪除操作,直到無法繼續刪除。在完成所有重復項刪除操作后返回最終的字符串。答案保證唯一。示例:輸入:"abbaca" 輸出:"ca" 解釋: 例如,在 "abbaca" 中,我們可以刪除 "bb" 由于兩字母相鄰且相同,這是此時唯一可以執行刪除操作的重復項。之后我們得到字符串 "aaca",其中又只有 "aa" 可以執行重復項刪除操作,所以最后的字符串為 "ca"。| 題解
class Solution:"""解題思路: 可以規劃為連連消問題, 利用棧來解決此類問題"""def removeDuplicates(self, s: str) -> str:result_list = list()for i in s:# 把第一個元素入棧,存放的時候為一個列表[val, count]if not result_list:result_list.append([i, 1])else:# 如果需要入棧的元素等于棧頂元素,則給棧頂元素的count值做加一的操作if i == result_list[-1][0]:result_list[-1][1] += 1else:result_list.append([i, 1])# 如果棧頂元素的個數等于2,做出棧操作if result_list[-1][1] == 2:result_list.pop()# 最后把棧中元素拼接返回return ''.join([j[0] for j in result_list])總結
以上是生活随笔為你收集整理的python 删除字符串中的所有相邻的重复项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 用一个数组实现三个栈
- 下一篇: python 栈的压入弹出序列