소문자, 대문자, 숫자 및 특수 문자가 포함된 문자열 s가 있다고 가정합니다. 문자 중 하나의 빈도가 문자열 길이의 절반 이상인지 확인해야 합니다.
따라서 입력이 s ="CC*Ca5&CC"와 같으면 'C'의 빈도가 5이고 문자열의 길이가 9이므로 출력은 True가 됩니다. (5> 9/2).
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- freq :=s 문자의 빈도를 포함하는 맵
- 주파수의 각 채널에 대해 다음을 수행합니다.
- ch의 빈도> (s / 2의 크기),
- 참 반환
- ch의 빈도> (s / 2의 크기),
- 거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시 코드
from collections import defaultdict def solve(s): freq = defaultdict(int) for ch in s: freq[ch] += 1 for ch in freq: if freq[ch] > len(s) // 2: return True return False s = "CC*Ca5&CC" print(solve(s))
입력
"CC*Ca5&CC"
출력
True