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

แอนนาแกรมตรวจสอบใน Python โดยใช้ collections.Counter()


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

สำหรับสิ่งนี้เราใช้โมดูลหลามที่เรียกว่าคอลเลกชัน ใช้เพื่อจัดเก็บคอลเลกชั่นของข้อมูล เช่น list, dict, set, tuple เป็นต้น นี่เป็นตัวอย่างของคอลเล็กชันในตัว ฟังก์ชัน ตัวนับ() เพียงนับจำนวนครั้งที่องค์ประกอบมีอยู่ในคอลเลกชัน และส่งกลับผลลัพธ์เป็นพจนานุกรมที่แสดงองค์ประกอบและการนับ ดังนั้น หากสตริงสองสตริงมีจำนวนอักขระแต่ละตัวตรงกัน เราจะถือว่าสตริงนั้นเป็นแอนนาแกรม

ตัวอย่าง

from collections import Counter
StringA = 'top spot'
StringB = 'pot post'
# Print the elements as adictionary
print Counter(StringA)
print Counter(StringB)
# Compare the dictionaries
if Counter(StringA)== Counter(StringB):
print 'StringA and StringB are Anagrams'

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Counter({'p': 2, 't': 2, 'o': 2, 's': 1, ' ': 1})
Counter({'p': 2, 't': 2, 'o': 2, 's': 1, ' ': 1})
StringA and StringB are Anagrams