โดยพื้นฐานแล้วแอนนาแกรมเป็นการเรียงสับเปลี่ยนทั้งหมดของสตริงหรือรูปแบบที่กำหนด อัลกอริธึมการค้นหารูปแบบนี้แตกต่างกันเล็กน้อย ในกรณีนี้ ไม่ได้ค้นหาเฉพาะรูปแบบที่แน่นอนเท่านั้น แต่ยังค้นหาการจัดเรียงที่เป็นไปได้ทั้งหมดของรูปแบบที่กำหนดในข้อความ ดังนั้นหากอินพุตคือ "ANAGRAM" และ "NAAGARM" แสดงว่าเป็นแอนนาแกรม แต่ "cat" และ "fat" ไม่ใช่แอนนาแกรม
ในการแก้ปัญหานี้ เราจะแปลงสตริงเป็นรายการอักขระ จากนั้นจัดเรียง หากรายการที่จัดเรียงสองรายการเหมือนกัน แสดงว่าเป็นแอนนาแกรม
ตัวอย่าง (Python)
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
return "".join(sorted(s)) == "".join(sorted(t))
ob1 = Solution()
print(ob1.isAnagram("ANAGRAM","NAAGARM")) อินพุต
s = "ANAGRAM" t = "NAAGARM"
ผลลัพธ์
true