หนึ่งสตริงจะได้รับ งานของเราคือค้นหาอักขระที่มีความถี่มากกว่าหนึ่งในสตริงที่กำหนด
ตัวอย่างเช่นเราจะเห็นว่าสตริง “สวัสดีชาวโลก. มาเรียน Python กันเถอะ” ดังนั้นอัลกอริทึมจะค้นหาตัวอักษรเหล่านั้นที่เกิดขึ้นหลายครั้ง ในกรณีนี้ ผลลัพธ์จะเป็นดังนี้ -
e : 3 l : 4 o , 3) <space> : 4 r : 2 t : 2 n : 2
เพื่อนำปัญหานี้ไปใช้ เราใช้ Python Collections จากคอลเล็กชัน เราสามารถหาเมธอด Counter() ได้ วิธีการ Counter() ใช้เพื่อนับวัตถุที่แฮชได้ ในกรณีนี้ จะแยกอักขระออกจากข้อความและทำให้อักขระแต่ละตัวเป็นคีย์ของพจนานุกรม และจำนวนอักขระคือค่าของคีย์เหล่านั้น
อัลกอริทึม
Step 1: Find the key-value pair from the string, where each character is key and character counts are the values. Step 2: For each key, check whether the value is greater than one or not. Step 3: If it is greater than one then, it is duplicate, so mark it. Otherwise, ignore the character
โค้ดตัวอย่าง
from collections import Counter defcalc_char_freq(string): freq_count = Counter(string) # get dictionary with letters as key and frequency as value for key in freq_count.keys(): if freq_count.get(key) > 1: # for all different keys, list the letters and frequencies print("(" + key + ", " + str(freq_count.get(key)) + ")") myStr = 'Hello World. Let’s learn Python' calc_char_freq(myStr)
ผลลัพธ์
(e, 3) (l, 4) (o, 3) ( , 4) (r, 2) (t, 2) (n, 2)