Python, C++, JavaScript, SQL 및 TypeScript의 다양한 LeetCode 솔루션을 살펴보세요. 여러 프로그래밍 언어로 인터뷰 준비, 학습 및 코드 연습에 적합합니다. Github 레포 링크
새로운 단어를 추가하고 문자열이 이전에 추가된 문자열과 일치하는지 확인하는 데이터 구조를 설계합니다.
구현하다 단어사전 수업:
단어사전()객체를 초기화합니다.void addWord(단어)추가합니다단어데이터 구조에 맞게 조정하면 나중에 다시 적용할 수 있습니다.bool 검색(단어)보고진실데이터 구조에 일치하는 문자열이 있는 경우단어또는거짓그렇지 않으면.단어점이 포함될 수 있습니다'.'점은 모든 문자와 일치할 수 있습니다.
예:
입력
["단어사전","addWord","addWord","addWord","검색","검색","검색","검색"] [[],["나쁨"],["아빠"],["미친"],["패드"],["나쁨"],[".광고"],["b.."]]
산출
[null, null, null, null, false, true, true, true]
설명
단어사전 단어사전 = 새로운 단어사전(); wordDictionary.addWord("잘못된 단어"); wordDictionary.addWord("아빠"); wordDictionary.addWord("mad"); wordDictionary.search("패드"); // 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): True를 반환합니다. False를 반환합니다. 그렇지 않은 경우: word[i]가 node.children에 없는 경우: False를 반환합니다. node = node.children[word[i]]를 반환합니다. node.isEnd를 반환합니다. helper(0, self.root) wordDictionary = WordDictionary() wordDictionary.addWord("bad") wordDictionary.addWord("dad") wordDictionary.addWord("mad") wordDictionary.search("pad")를 인쇄합니다. wordDictionary.search("bad")) wordDictionary.search(".ad")) wordDictionary.search("b.."))를 인쇄합니다.

![[Leetcode] 0261. 그래프 유효 트리](https://hogantechs.com/wp-content/uploads/2024/12/10-1024x577.png)