2026-01-02 16:54:09 +0300 MSK
Stream of Characters
Links
Code
class StreamChecker:
def __init__(self, words: List[str]):
self.trie = {}
self.min_length = float("inf")
for word in words:
node = self.trie
self.min_length = min(self.min_length, len(word))
for char in reversed(word):
if char not in node:
node[char] = {}
node = node[char]
node["is_word"] = True
self.letters = []
def query(self, letter: str) -> bool:
self.letters.append(letter)
if len(self.letters) < self.min_length:
return False
node = self.trie
for letter in reversed(self.letters):
if letter not in node:
return False
if node[letter].get("is_word"):
return True
node = node[letter]
return False
# Your StreamChecker object will be instantiated and called as such:
# obj = StreamChecker(words)
# param_1 = obj.query(letter)