voidadd(conststring &s){ auto p = root; for (auto rit = rbegin(s); rit != rend(s); ++rit) { int k = *rit - 'a'; if (!p->children[k]) { p->children[k] = new TrieNode; } p = p->children[k]; } p->isEnd = true; }
boolsearch(conststring &s){ auto p = root; for (auto rit = rbegin(s); rit != rend(s); ++rit) { int k = *rit - 'a'; if (p->isEnd) returntrue; if (!p->children[k]) returnfalse; p = p->children[k]; } return p->isEnd; }
string data; TrieNode *root; };
/** * Your StreamChecker object will be instantiated and called as such: * StreamChecker* obj = new StreamChecker(words); * bool param_1 = obj->query(letter); */