150 najlepszych wywiadówŚredni

Zaimplementuj drzewo prefiksów próby

Szczegółowy przewodnik i implementacja Python dla problemu „Implementuj drzewo przedrostków próby”.

Oświadczenie o problemie

Średni

Drzewo trie (wymawiane jako „try”) lub drzewo prefiksów to drzewiasta struktura danych używana do wydajnego przechowywania i pobierania kluczy w zestawie danych składającym się z ciągów znaków. Istnieją różne zastosowania tej struktury danych, takie jak autouzupełnianie i sprawdzanie pisowni.

Zaimplementuj klasę Trie:

- Trie() Inicjuje obiekt trie.

- wstaw(słowo: str) Wstawia słowo tekstowe do trie.

- search(słowo: str) -> bool Zwraca True, jeśli słowo ciągu znajduje się w trie (tj. zostało wstawione wcześniej), a False w przeciwnym razie.

- startWith(prefix: str) -> bool Zwraca True, jeśli istnieje wcześniej wstawione słowo łańcuchowe, które ma przedrostek przedrostka, lub False w przeciwnym razie.

Dane wejściowe to lista operacji i argumentów. Zaimplementuj funkcję trie(operations: list, arguments: list) -> list, która zwraca listę wyników (brak dla konstruktora/wstawiania, bool dla wyszukiwania/startsWith).

Ograniczenia
  • 1 <= len(word), len(prefix) <= 2000
  • word and prefix consist of lowercase English letters
  • At most 3 * 10^4 calls will be made in total to insert, search, and startsWith

Przykłady

Example 1
Input
operations = ["Trie", "insert", "search", "search", "startsWith", "insert", "search"], arguments = [[], ["apple"], ["apple"], ["app"], ["app"], ["app"], ["app"]]
Output
[None, None, True, False, True, None, True]
Explanation

Trie initialized. insert("apple"). search("apple") returns True. search("app") returns False. startsWith("app") returns True. insert("app"). search("app") returns True.

Need a Hint?
Rozważ użycie specyficznych dla Trie struktur danych, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

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

Otwórz w Edytorze
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

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.