Cho chuỗi s và số k, kiểm tra có thể tạo k palindrome dùng hết tất cả ký tự trong s không.
Ví dụ: s = "amledavmel", k = 2 → True (tạo "level" và "madam").
Điều kiện: Một palindrome có tối đa 1 ký tự xuất hiện số lẻ lần. Vậy cần số ký tự xuất hiện lẻ lần cnt <= k.
Ví dụ triển khai
from collections import Counter
class Solution:
def solve(self, s, k):
d = Counter(s)
cnt = 0
for key in d:
if d[key] & 1:
cnt += 1
if cnt > k:
return False
return True
ob = Solution()
s = "amledavmel"
k = 2
print(ob.solve(s, k)) # True
Đầu vào
"amledavmel", 2
Đầu ra
True