Python、C++、JavaScript、SQL、TypeScript の多様な LeetCode ソリューションを探索してください。面接の準備、学習、複数のプログラミング言語でのコードの練習に最適です。 Github リポジトリ リンク
新しい単語の追加と、文字列が以前に追加された文字列と一致するかどうかの検索をサポートするデータ構造を設計します。
実装する 単語辞書 クラス:
単語辞書()オブジェクトを初期化します。void addWord(単語)追加言葉データ構造に合わせると、後で一致させることができます。bool 検索(単語)返品真実データ構造内に一致する文字列がある場合言葉または間違いさもないと。言葉ドットが含まれる場合があります'.'ドットは任意の文字と一致できます。
例:
入力
["WordDictionary","addWord","addWord","addWord","search","search","search","search"] [[],["bad"],["dad"],["mad"],["pad"],["bad"],[".ad"],["b.."]]
出力
[null、null、null、null、偽、真、真、真]
説明
WordDictionary wordDictionary = 新しい WordDictionary(); wordDictionary.addWord("悪い"); wordDictionary.addWord("お父さん"); wordDictionary.addWord("mad"); wordDictionary.search("pad"); // False を返す wordDictionary.search("bad"); // True を返す wordDictionary.search(".ad"); // True を返す wordDictionary.search("b.."); // Trueを返す
制約:
1 <= 単語の長さ <= 25言葉で追加ワード小文字の英語の文字で構成されています。言葉で検索構成する'.'または小文字の英語の文字。- 最大で
2点々言葉のために検索クエリ。 - せいぜい
10 4電話がかかってくる追加ワードそして検索.
パイソン
# 時間計算量: O(M) # 空間計算量: O(M) クラス TrieNode: def __init__(self): self.children = {} self.isEnd = False クラス WordDictionary: def __init__(self): self.root = TrieNode() self.maxLen = 0 def addWord(self, word: str) -> None: node = self.root l = 0 for char in word: if char not in node.children: node.children[char] = TrieNode() node = node.children[char] l += 1 self.maxLen = max(self.maxLen, l) node.isEnd = True def search(self, word: str) -> bool: if len(word) > self.maxLen: return False def helper(idx, node): for i in range(idx, len(word)): if word[i] == ".": for child in node.children.values(): if helper(i + 1, child): return True return False else: if word[i] not in node.children: return False node = node.children[word[i]] return node.isEnd return helper(0, self.root) wordDictionary = WordDictionary() wordDictionary.addWord("bad") wordDictionary.addWord("dad") wordDictionary.addWord("mad") print(wordDictionary.search("pad")) print(wordDictionary.search("bad")) print(wordDictionary.search(".ad")) print(wordDictionary.search("b.."))

![[LeetCode] 0140. 単語区切り ii](https://hogantechs.com/wp-content/uploads/2024/12/17-1024x577.png)