ภาพรวม
Anagram คือคำที่ประกอบด้วยตัวอักษรเดียวกัน แต่เรียงลำดับต่างกัน (เช่น listen ↔ silent)
ตัวอย่าง
s0 = "listen", s1 = "silent"
เรียงตัวอักษร: ทั้งคู่ → ['e', 'i', 'l', 'n', 's', 't'] → True
โค้ด Python
class Solution:
def solve(self, s0, s1):
return sorted(s0) == sorted(s1)
ob = Solution()
print(ob.solve("listen", "silent"))
วิธีอื่น: Counter (O(n))
from collections import Counter
def is_anagram(s0, s1):
return Counter(s0) == Counter(s1)
เร็วกว่า sorted (O(n log n)) สำหรับสตริงยาว
ข้อควรพิจารณา
- Case-sensitive: "Listen" ≠ "silent" → ใช้ .lower() ถ้าต้องการ case-insensitive
- Whitespace: "a bc" ≠ "abc" → ใช้ .replace(" ", "") ถ้าต้องการ ignore space
ผลลัพธ์
True