150 najlepszych wywiadówŁatwe

Zaprojektuj Dodaj i wyszukaj słowa

Szczegółowy przewodnik i implementacja Python dla problemu „Zaprojektuj, dodaj i wyszukaj słowa”.

Oświadczenie o problemie

Łatwe

Zaprojektuj strukturę danych obsługującą dodawanie nowych słów i sprawdzanie, czy ciąg pasuje do dowolnego wcześniej dodanego ciągu.

Zaimplementuj klasę WordDictionary:

- WordDictionary() Inicjuje obiekt.

- addWord(słowo: str) Dodaje słowo do struktury danych, można je później dopasować.

- search(word: str) -> bool Zwraca True, jeśli w strukturze danych istnieje ciąg pasujący do słowa lub False w przeciwnym razie. słowo może zawierać kropki '.' gdzie kropki można dopasować do dowolnej litery.

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

Ograniczenia
  • 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

Przykłady

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?
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.