문자열 s가 있다고 가정하면 주어진 문자열의 문자를 섞어 회문을 만들 수 있는지 여부를 확인해야 합니다.
따라서 입력이 s ="raaecrc"와 같으면 회문인 "racecar"로 재정렬할 수 있으므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- freq :=s에 모든 문자와 주파수를 저장하는 맵
- 홀수_카운트:=0
- freq의 모든 값 목록에 있는 각 요소 i에 대해 do
- 내가 홀수이면
- odd_count :=odd_count + 1
- odd_count> 1이면
- 거짓을 반환
- 내가 홀수이면
- 참 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
from collections import defaultdict def solve(st) : freq = defaultdict(int) for char in st : freq[char] += 1 odd_count = 0 for i in freq.values(): if i % 2 == 1: odd_count = odd_count + 1 if odd_count > 1: return False return True s = "raaecrc" print(solve(s))
입력
"raaecrc"
출력
True