給出由小寫字母組成的字串 s,重複項刪除操作會選擇兩個相鄰且相同的字母,並刪除它們。
在 s 上反覆執行重複項刪除操作,直到無法繼續刪除。
在完成所有重複項刪除操作後返回最終的字串。答案保證唯一。
示例:輸入:「abbaca」
輸出:「ca」
解釋:例如,在 「abbaca」 中,我們可以刪除 「bb」 由於兩字母相鄰且相同,這是此時唯一可以執行刪除操作的重複項。之後我們得到字串 「aaca」,其中又只有 「aa」 可以執行重複項刪除操作,所以最後的字串為 「ca」。
該題用棧來解決,設定乙個棧stack,遍歷字串s,若棧不為空和遍歷的當前字元與棧頂字元相等時,棧頂元素出棧,否則進棧。
class
solution
:def
removeduplicates
(self, s:
str)
->
str:
stack=
for i in s:
if stack and i==stack[-1
]:stack.pop(
)else
:return stack
1047 刪除字串中的所有相鄰重複項
刪除字串中的所有相鄰重複項 給出由小寫字母組成的字串 s,重複項刪除操作會選擇兩個相鄰且相同的字母,並刪除它們。在 s 上反覆執行重複項刪除操作,直到無法繼續刪除。在完成所有重複項刪除操作後返回最終的字串。答案保證唯一。示例 輸入 abbaca 輸出 ca 解釋 例如,在 abbaca 中,我們可以...
1047 刪除字串中的所有相鄰重複項
1.題目描述 給出由小寫字母組成的字串 s,重複項刪除操作會選擇兩個相鄰且相同的字母,並刪除它們。在 s 上反覆執行重複項刪除操作,直到無法繼續刪除。在完成所有重複項刪除操作後返回最終的字串。答案保證唯一。示例 輸入 abbaca 輸出 ca 解釋 例如,在 abbaca 中,我們可以刪除 bb 由...
1047 刪除字串中的所有相鄰重複項
給出由小寫字母組成的字串 s,重複項刪除操作會選擇兩個相鄰且相同的字母,並刪除它們。在 s 上反覆執行重複項刪除操作,直到無法繼續刪除。在完成所有重複項刪除操作後返回最終的字串。答案保證唯一。示例 輸入 abbaca 輸出 ca 解釋 例如,在 abbaca 中,我們可以刪除 bb 由於兩字母相鄰且...