문자열 s가 있다고 가정합니다. s의 각 문자가 소수인지 여부를 확인해야 합니다.
따라서 입력이 s ="apuuppa"와 같으면 2개의 'a', 3개의 'p' 및 2개의 'u'가 있으므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- freq :=모든 문자와 주파수를 포함하는 지도
- freq의 각 문자에 대해 다음을 수행합니다.
- freq[char]> 0이고 freq[char]가 소수가 아니면
- 거짓을 반환
- freq[char]> 0이고 freq[char]가 소수가 아니면
- 참 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시 코드
from collections import defaultdict def isPrime(num): if num > 1: for i in range(2, num): if num % i == 0: return False return True return False def solve(s): freq = defaultdict(int) for i in range(len(s)): freq[s[i]] += 1 for char in freq: if freq[char] > 0 and isPrime(freq[char]) == False: return False return True s = "apuuppa" print(solve(s))
입력
"apuuppa"
출력
True