Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่าอักขระสูงสุดที่เกิดขึ้นของหนึ่งสตริงปรากฏขึ้นหมายเลขเดียวกันหรือไม่ ของครั้งในภาษา Python


สมมติว่าเรามีสองสายอักขระ s และ t เราต้องเลือกอักขระที่ใช้บ่อยที่สุดจาก s แล้วเราต้องตรวจสอบว่าอักขระนั้นมีอยู่เป็นจำนวนครั้งเท่ากันหรือไม่

ดังนั้น หากอินพุตเป็น s ="ตัดขวาง", t ="securesystem" เอาต์พุตจะเป็น True เนื่องจากอักขระที่ใช้บ่อยที่สุดใน s คือ 's' และมีจำนวนของ 's' เท่ากันใน t.

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • freq :=แผนที่ที่มีอักขระ s และความถี่ทั้งหมด
  • max_freq_char =อักขระใน s โดยที่ความถี่สูงสุด
  • max_freq :=ค่าความถี่ของ max_freq_char
  • หากการเกิดของ max_freq_char ใน t เหมือนกับ max_freq ดังนั้น
    • คืนค่า True
  • คืนค่าเท็จ

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

from collections import defaultdict
def solve(s, t) :
   freq = defaultdict(int)
   for char in s :
      freq[char] += 1
   max_freq_char = max(freq, key=freq.get)
   max_freq = freq[max_freq_char]
   if max_freq == t.count(max_freq_char) :
      return True
   return False
s = "crosssection"
t = "securesystem"
print(solve(s, t))

อินพุต

"crosssection", "securesystem"

ผลลัพธ์

True