1 class StreamChecker: 2 def __init__(self, words: 'List[str]'): 3 self.maxLen = 0 4 self.List = set(words) 5 for w in self.List: 6 self.maxLen = max(self.maxLen,len(w)) 7 self.STR = '' 8 9 def query(self, letter: str) -> bool: 10 11 if letter in self.List: 12 return True 13 else: 14 self.STR += letter 15 16 clen = len(self.STR) 17 if clen > self.maxLen: 18 self.STR = self.STR[1:] 19 20 for w in self.List: 21 lw = len(w) 22 ls = len(self.STR) 23 if ls >= lw and w == self.STR[ls-lw:]: 24 return True 25 return False
此解决方案超时,提示使用Trie。