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

2021-10-08 14:50:34 字數 907 閱讀 1026

題目描述:

給你乙個字串 s,「k 倍重複項刪除操作」將會從 s 中選擇 k 個相鄰且相等的字母,並刪除它們,使被刪去的字串的左側和右側連在一起。

你需要對 s 重複進行無限次這樣的刪除操作,直到無法繼續為止。

在執行完所有刪除操作後,返回最終得到的字串。

本題答案保證唯一。

示例 1:

輸入:s = 「abcd」, k = 2

輸出:「abcd」

解釋:沒有要刪除的內容。

示例 2:

輸入:s = 「deeedbbcccbdaa」, k = 3

輸出:「aa」

解釋:先刪除 「eee」 和 「ccc」,得到 「ddbbbdaa」

再刪除 「bbb」,得到 「dddaa」

最後刪除 「ddd」,得到 「aa」

示例 3:

輸入:s = 「pbbcggttciiippooaais」, k = 2

輸出:「ps」

1 <= s.length <= 10^5

2 <= k <= 10^4

s 中只含有小寫英文本母。

方法1:利用棧

主要思路:

(1)利用棧儲存之前的重複的字元的個數,若是重複的個數達到了 k,則將這些重複的字元刪除,並更新對應的索引,若沒有,則接著遍歷;

class solution

//若當前的計數達到了 k,則刪除重複的 k 個元素

elseif(

++st.

top(

)==k)

}return s;}}

;

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

給你乙個字串 s,k 倍重複項刪除操作 將會從 s 中選擇 k 個相鄰且相等的字母,並刪除它們,使被刪去的字串的左側和右側連在一起。你需要對 s 重複進行無限次這樣的刪除操作,直到無法繼續為止。在執行完所有刪除操作後,返回最終得到的字串。本題答案保證唯一。示例 1 輸入 s abcd k 2 輸出 ...

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

給你乙個字串 s,k 倍重複項刪除操作 將會從 s 中選擇 k 個相鄰且相等的字母,並刪除它們,使被刪去的字串的左側和右側連在一起。你需要對 s 重複進行無限次這樣的刪除操作,直到無法繼續為止。在執行完所有刪除操作後,返回最終得到的字串。本題答案保證唯一。import j a.util.scanne...

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

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