Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra có thể tạo k palindrome từ ký tự chuỗi cho trước trong Python


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