題目描述:
給你乙個字串 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 由於兩字母相鄰且...