1047 刪除字串中的所有相鄰重複項

2021-10-21 15:06:10 字數 609 閱讀 1539

給出由小寫字母組成的字串 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 由於兩字母相鄰且...