Trình kiểm tra đảo chữ Python
Kiểm tra xem hai chuỗi có phải là đảo chữ hay không bằng cách so sánh thành phần ký tự của chúng trong Python.
Tổng quan
Hai chuỗi là đảo chữ nếu chúng chứa các ký tự giống nhau ở tần số giống nhau, mặc dù được sắp xếp theo thứ tự khác nhau (ví dụ: "nghe" và "im lặng").
Một cách hay để kiểm tra đảo chữ là làm sạch các chuỗi (xóa khoảng trắng và viết hoa dưới), sắp xếp các ký tự của chúng và xác minh xem danh sách được sắp xếp có giống nhau hay không.
Cách tiếp cận sắp xếp này thực hiện trong thời gian O(k log k) trong đó k là độ dài chuỗi, tối ưu cho việc kiểm tra văn bản ngắn.
Đầu ra mã & thực thi
Kiểm tra các cặp từ để biết trạng thái đảo chữ bằng cách sắp xếp chữ cái.
def is_anagram(str1, str2):
s1 = sorted(str1.lower().replace(" ", ""))
s2 = sorted(str2.lower().replace(" ", ""))
return s1 == s2
word1, word2 = "listen", "silent"
print(f"Are '{word1}' and '{word2}' anagrams? {is_anagram(word1, word2)}")
word3, word4 = "hello", "world"
print(f"Are '{word3}' and '{word4}' anagrams? {is_anagram(word3, word4)}")Are 'listen' and 'silent' anagrams? True
Are 'hello' and 'world' anagrams? FalseTriển khai từng bước
- Công cụ phân tích văn bản và so sánh ngôn ngữ
- Hệ thống xác nhận và thiết kế câu đố chuỗi
- Nhiệm vụ mã hóa cuộc phỏng vấn kỹ thuật
Câu hỏi thường gặp
Có cách nào để giải quyết vấn đề này trong thời gian tuyến tính O(n) không?
Vâng! Thay vì sắp xếp, bạn có thể đếm tần số chữ cái bằng cách sử dụng bản đồ băm hoặc `collections.Counter` của Python và so sánh các bản đồ tần số thu được.