ในบทความนี้เราจะมาดูวิธีหาความถี่ของแต่ละตัวอักษรในสตริงที่กำหนด จากนั้นตรวจสอบว่ามีตัวอักษรสองตัวขึ้นไปที่มีความถี่เท่ากันหรือไม่ เราจะทำในสองขั้นตอน โปรแกรมแรกจะหาความถี่ของแต่ละตัวอักษร
ความถี่ของแต่ละตัวอักษร
ที่นี่เราหาความถี่ของแต่ละตัวอักษรในอินพุตที่กำหนด เราประกาศพจนานุกรมว่าง แล้วเพิ่มตัวอักษรแต่ละตัวเป็นสตริง และกำหนดคีย์ให้แต่ละตัวอักษรเพื่อสร้างคู่คีย์-ค่าที่พจนานุกรมต้องการ
ตัวอย่าง
in_string = "She sells sea shells"
dic1 = {}
for k in in_string:
if k in dic1.keys():
dic1[k] += 1
else:
dic1[k] = 1
print(dic1)
for k in dic1.keys():
print(k, " repeats ", dic1[k], " time's")
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลดังนี้ −
{'S': 1, 'h': 2, 'e': 4, ' ': 3, 's': 5, 'l': 4, 'a': 1}
S repeats 1 time's
h repeats 2 time's
e repeats 4 time's
repeats 3 time's
s repeats 5 time's
l repeats 4 time's
a repeats 1 time's
ความถี่ที่ไม่ซ้ำกันของแต่ละตัวอักษร
ต่อไปเราขยายโปรแกรมข้างต้นเพื่อหาความถี่ของแต่ละตัวอักษรที่ไม่ซ้ำกัน หากค่าความถี่ที่ไม่ซ้ำกันมีมากกว่าหนึ่ง เราจะสรุปได้ว่าตัวอักษรไม่ทั้งหมดมีความถี่เท่ากัน
ตัวอย่าง
in_string = "She sells sea shells"
dic1 = {}
for k in in_string:
if k in dic1.keys():
dic1[k] += 1
else:
dic1[k] = 1
print(dic1)
u_value = set(val for udic in dic1 for val in (dic1.values()))
print("Number of Unique frequencies: ", len(u_value))
if len(u_value) == 1:
print("All character have same frequiency")
else:
print("The characters have different frequencies.")
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลดังนี้ −
{'S': 1, 'h': 2, 'e': 4, ' ': 3, 's': 5, 'l': 4, 'a': 1}
Number of Unique frequencies: 5
The characters have different frequencies.