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

ตรวจสอบ Anagram ใน Python

ภาพรวม

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