Các vấn đề tra cứu từ điển có thể được giải quyết một cách hiệu quả bằng cách sử dụng Trie.
Tôi khuyên bạn nên tìm danh sách từ, từ WordNet, lưu trữ trong Trie và sau đó thực hiện tra cứu nhanh các từ có thể.
Một giải pháp sẽ có dạng:
- tải các danh sách từ
- cửa hàng trong danh sách từ trong một Trie
- chấp nhận đầu vào cho một từ để xắp xếp lại
thử hoán vị i = 1.N
a. tra cứu hoán vị tôi sử dụng trie
b. nếu có kết quả tích cực, hãy lưu trữ để hiển thị
c. lặp (i ++)
lặp lại từ 3.
chỉnh sửa:
Một mặt lưu ý ở đây là đối với bất kỳ ký tự từ chiều dài N có thể có N! tra cứu bắt buộc (cho 7 ký tự sẽ là 5040). Bạn nên xem xét thực hiện một số tối ưu hóa cho thuật toán tra cứu trie. Ví dụ, bạn đạt được hiệu quả đáng kể bằng cách loại bỏ các dữ liệu không hợp lệ sớm, và không lặp lại các hoán vị cuối.
ví dụ: với từ táo, nếu bạn có hoán vị nơi bạn đã chọn "ppl" làm ba ký tự đầu tiên, sẽ không tìm thấy từ nào. Vì vậy, không có vấn đề làm thế nào bạn permute a và e ở cuối bạn không thể xây dựng một từ.Chấm dứt sớm hoán vị có thể quan trọng đối với hiệu quả của thuật toán của bạn.
Nguồn
2010-02-09 13:04:31
Bạn có biết thực tế là trong PHP, bất kỳ mảng kết hợp nào có hiệu lực từ điển không? – amn