สมมติว่าเรามีสองสายอักขระ 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