โดยพื้นฐานแล้วแอนนาแกรมเป็นการเรียงสับเปลี่ยนทั้งหมดของสตริงหรือรูปแบบที่กำหนด อัลกอริธึมการค้นหารูปแบบนี้แตกต่างกันเล็กน้อย ในกรณีนี้ ไม่ได้ค้นหาเฉพาะรูปแบบที่แน่นอนเท่านั้น แต่ยังค้นหาการจัดเรียงที่เป็นไปได้ทั้งหมดของรูปแบบที่กำหนดในข้อความ ดังนั้นหากอินพุตคือ "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