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

2021-10-09 12:37:35 字數 665 閱讀 8606

給出由小寫字母組成的字串 s,重複項刪除操作會選擇兩個相鄰且相同的字母,並刪除它們。

在 s 上反覆執行重複項刪除操作,直到無法繼續刪除。

在完成所有重複項刪除操作後返回最終的字串。答案保證唯一。

示例:輸入:"abbaca"

輸出:"ca"

解釋:例如,在 "abbaca" 中,我們可以刪除 "bb" 由於兩字母相鄰且相同,這是此時唯一可以執行刪除操作的重複項。之後我們得到字串 "aaca",其中又只有 "aa" 可以執行重複項刪除操作,所以最後的字串為 "ca"。

其實這種用棧的題目還挺少見的, 我一開始想的是用雙向鍊錶,害,還是孤陋寡聞了。

用棧,如果棧頂和即將比對的元素一致的話, 就拿出原有元素,反之入棧。

最後可以用兩個棧顛倒一下拿到結果。

public static string removeduplicates(string s) 

else

else }}

string result = "";

stackstack2 = new stack<>();

while (!stack.isempty())

while (!stack2.isempty())

return result;

}

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

給出由小寫字母組成的字串 s,重複項刪除操作會選擇兩個相鄰且相同的字母,並刪除它們。在 s 上反覆執行重複項刪除操作,直到無法繼續刪除。在完成所有重複項刪除操作後返回最終的字串。答案保證唯一。示例 輸入 abbaca 輸出 ca 解釋 例如,在 abbaca 中,我們可以刪除 bb 由於兩字母相鄰且...

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

給出由小寫字母組成的字串 s,重複項刪除操作會選擇兩個相鄰且相同的字母,並刪除它們。在 s 上反覆執行重複項刪除操作,直到無法繼續刪除。在完成所有重複項刪除操作後返回最終的字串。答案保證唯一。輸入 abbaca 輸出 ca 解釋 例如,在 abbaca 中,我們可以刪除 bb 由於兩字母相鄰且相同,...

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

刪除字串中的所有相鄰重複項 給出由小寫字母組成的字串 s,重複項刪除操作會選擇兩個相鄰且相同的字母,並刪除它們。在 s 上反覆執行重複項刪除操作,直到無法繼續刪除。在完成所有重複項刪除操作後返回最終的字串。答案保證唯一。示例 輸入 abbaca 輸出 ca 解釋 例如,在 abbaca 中,我們可以...