Phỏng vấn top 150Dễ dàng

Thiết kế Thêm và tìm kiếm từ

Hướng dẫn chi tiết và cách triển khai Python cho bài toán 'Thiết kế Thêm và Tìm kiếm Từ'.

Tuyên bố vấn đề

Dễ dàng

Thiết kế cấu trúc dữ liệu hỗ trợ thêm từ mới và tìm xem một chuỗi có khớp với bất kỳ chuỗi nào được thêm trước đó hay không.

Triển khai lớp WordDictionary:

- WordDictionary() Khởi tạo đối tượng.

- addWord(word: str) Thêm từ vào cấu trúc dữ liệu, nó có thể được so khớp sau này.

- search(word: str) -> bool Trả về Đúng nếu có bất kỳ chuỗi nào trong cấu trúc dữ liệu khớp với từ hoặc Sai nếu không. từ có thể chứa dấu chấm '.' nơi các dấu chấm có thể được khớp với bất kỳ chữ cái nào.

Đầu vào là danh sách các phép toán và đối số. Triển khai hàm wordDictionary(operations: list, arguments: list) -> list trả về danh sách kết quả (Không có cho hàm tạo/addWord, bool cho tìm kiếm).

Ràng buộc
  • 1 <= len(word) <= 25
  • word in addWord consists of lowercase English letters
  • word in search consists of '.' or lowercase English letters
  • At most 10^4 calls will be made to addWord and search

Ví dụ

Example 1
Input
operations = ["WordDictionary", "addWord", "addWord", "addWord", "search", "search", "search", "search"], arguments = [[], ["bad"], ["dad"], ["mad"], ["pad"], ["bad"], [".ad"], ["b.."]]
Output
[None, None, None, None, False, True, True, True]
Explanation

Initialize. Add "bad", "dad", "mad". search("pad") -> False. search("bad") -> True. search(".ad") -> True. search("b..") -> True.

Need a Hint?
Hãy cân nhắc sử dụng các cấu trúc dữ liệu dành riêng cho Trie như tập hợp hoặc đống.
Edge Cases to Watch
  • Cấu trúc đầu vào trống
  • Đầu vào phần tử đơn
  • Giới hạn số lớn

Sẵn sàng để giải quyết?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Mở trong Trình chỉnh sửa
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Tài nguyên Python được đề xuất

Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.