2135. Count Words Obtained After Adding a Letter
2022. 1. 10. 17:00ㆍAlgorithm
- 목차
반응형
class TrieNode:
def __init__(self, ch):
self.ch = ch
self.child = {}
self.eow = False
class Solution:
def wordCount(self, startWords: List[str], targetWords: List[str]) -> int:
cnt = 0
root = TrieNode(None)
for start in startWords:
node = root
for ch in sorted(start):
if ch not in node.child:
node.child[ch] = TrieNode(ch)
node = node.child[ch]
node.eow = True
for target in targetWords:
target = sorted(target)
for i in range(len(target)):
word = target[:i] + target[i + 1:]
node = root
checked_len = 0
for ch in word:
if ch not in node.child:
break
node = node.child[ch]
checked_len += 1
if node.eow and checked_len == len(target) - 1:
cnt += 1
break
return cnt
반응형
'Algorithm' 카테고리의 다른 글
Sneak (0) | 2022.07.24 |
---|---|
2139. Minimum Moves to Reach Target Score (0) | 2022.01.22 |
Softeer: [21년 재직자 대회 예선] 이미지 프로세싱 (0) | 2022.01.09 |
Softeer: [21년 재직자 대회 예선] 로드 밸런서 트래픽 예측 (0) | 2022.01.09 |
파이썬 이진 탐색 (0) | 2021.12.24 |