Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 문자열의 모든 문자의 빈도가 소수인지 확인하십시오.

<시간/>

문자열 s가 있다고 가정합니다. s의 각 문자가 소수인지 여부를 확인해야 합니다.

따라서 입력이 s ="apuuppa"와 같으면 2개의 'a', 3개의 'p' 및 2개의 'u'가 있으므로 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • freq :=모든 문자와 주파수를 포함하는 지도
  • freq의 각 문자에 대해 다음을 수행합니다.
    • 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