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

ค้นหาอักขระที่ซ้ำกันทั้งหมดจากสตริงโดยใช้ Python


หนึ่งสตริงจะได้รับ งานของเราคือค้นหาอักขระที่มีความถี่มากกว่าหนึ่งในสตริงที่กำหนด

ตัวอย่างเช่นเราจะเห็นว่าสตริง “สวัสดีชาวโลก. มาเรียน 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)