很简单的字典树的题, 直接构造一个字典树判断即可
var StreamChecker = function (words) {
this.words = words;
const trie = {};
for (word of words) {
let ptr = trie;
for (let i = word.length - 1; i >= 0; --i) {
if (!ptr[word[i]]) {
ptr[word[i]] = {};
}
ptr = ptr[word[i]];
i === 0 && (ptr.isEnd = true);
}
}
this.trie = trie;
this.buffer = '';
};
/**
* @param {character} letter
* @return {boolean}
*/
StreamChecker.prototype.query = function (letter) {
this.buffer += letter;
const buffer = this.buffer;
let ptr = this.trie;
for (let i = buffer.length - 1; i >= 0; --i) {
if (ptr[buffer[i]]) {
if (ptr[buffer[i]].isEnd)
return true;
ptr = ptr[buffer[i]];
}
else {
return false;
}
}
return false;
};