Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem tần số của tất cả các ký tự trong một chuỗi có phải là số nguyên tố hay không trong Python

Giả sử chúng ta có một chuỗi s. Chúng ta phải kiểm tra xem các lần xuất hiện của mỗi ký tự trong s có phải là số nguyên tố hay không

Vì vậy, nếu đầu vào là s =​​"apuuppa", thì đầu ra sẽ là Đúng vì có hai 'a, ba' p và hai 'u.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • freq:=một bản đồ chứa tất cả các ký tự và tần số của chúng
  • đối với mỗi ký tự trong freq, hãy thực hiện
    • nếu freq [char]> 0 và freq [char] không phải là số nguyên tố, thì
      • trả về Sai
  • trả về True

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Mã mẫu

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))

Đầu vào

"apuuppa"

Đầu ra

True