Cho chuỗi s và số k. Lặp lại: xóa sớm nhất k ký tự liên tiếp giống nhau, cho đến khi không còn. Trả về chuỗi cuối cùng.
Ví dụ: s="paaappmmmma", k=3 → "ma" (xóa aaa, ppp, mmm).
Giải thuật
- Lặp vô hạn:
- Đếm
countsố lần xóa trong vòng lặp. - Với mỗi ký tự duy nhất trong
s: nếuc*kxuất hiện trongs→ thay thế bằng rỗng, tăngcount. - Nếu
count == 0→ thoát.
- Đếm
- Trả về
s.
Ví dụ minh họa
class Solution:
def solve(self, s, k):
while True:
count = 0
chars = set(s)
for c in chars:
if c * k in s:
s = s.replace(c * k, "")
count += 1
if count == 0:
break
return s
ob = Solution()
s = "paaappmmmma"
k = 3
print(ob.solve(s, k))
Đầu vào
"paaappmmmma", 3
Đầu ra
ma