老师,1032题您的思路是trie,但是和算法体系课上的trie实现方式不一样,课上的实现方式是多叉树,多叉树的方案清楚好懂,而github题解上您用的是一个vector数组来承载trie,看了代码,没懂, 可以讲下吗,这个思路挺有用的。 这是一个求后缀的问题,我直接用了语言库里的字符串自带的endsWith函数来求解的。
=============
另外官方题解中还讲到了 AC自动机,可以稍作介绍吗…-…
/**
* @param {string[]} words
*/
var StreamChecker = function(words) {
this.words = words;
this.stream = ''; // 初始字符流, 从空字符串开始
};
/**
* @param {character} letter
* @return {boolean}
*/
StreamChecker.prototype.query = function(letter) {
this.stream += letter; // 不断往stream中添加字符
// 遍历words数组来 判断数组中是否有字符流后缀
for( let i = 0; i < this.words.length; i ++ ){
if( this.stream.endsWith(this.words[i]) ){ // 通过String.prototype.endsWith原生方法来判后缀
return true;
}
} // for i
return false;
};