문자열 s와 다른 숫자 k가 있다고 가정하고 s의 모든 문자를 사용하여 kpalindrome을 만들 수 있는지 여부를 확인해야 합니다.
따라서 입력이 s ="amledavmel" k =2와 같으면 출력은 True가 됩니다. "level"과 "madam"을 만들 수 있기 때문입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다.
-
d :=각각의 고유한 문자와 빈도를 저장하는 맵
-
cnt :=0
-
d의 각 키에 대해 수행
-
d[key]가 홀수이면
-
cnt :=cnt + 1
-
-
cnt> k인 경우
-
거짓을 반환
-
-
-
참을 반환
더 나은 이해를 위해 다음 구현을 살펴보겠습니다.
예시
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))
입력
"amledavmel",2
출력
True