leetcode

我的 leetcode 题解(JavaScript)


很简单的字典树的题, 直接构造一个字典树判断即可

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;
};