2026-01-02 16:49:02 +0300 MSK
Stream of Characters
Links
Code
class StreamChecker:
def __init__(self, words: List[str]):
self.trie = {}
self.lengths = set()
for word in words:
node = self.trie
self.lengths.add(len(word))
for char in 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)
for length in self.lengths:
if length > len(self.letters):
continue
node = self.trie
was_break = False
for letter in self.letters[-length:]:
if letter not in node:
was_break = True
break
node = node[letter]
if was_break:
continue
if node.get("is_word", False):
return True
return False
# Your StreamChecker object will be instantiated and called as such:
# obj = StreamChecker(words)
# param_1 = obj.query(letter)