主要实现的地方就在search这个方法,需要找到长度相同,但是字母只相差1个的字符串,符合条件返回true,不符合返回false.
这里的实现思路还是比较简单的,使用diff来计数,长度超过的直接break,再进行下一个单词的判断
var MagicDictionary = function () {
};
/**
* @param {string[]} dictionary
* @return {void}
*/
MagicDictionary.prototype.buildDict = function (dictionary) {
this.words = dictionary
};
/**
* @param {string} searchWord
* @return {boolean}
*/
MagicDictionary.prototype.search = function (searchWord) {
for (let word of this.words) {
if (word.length !== searchWord.length) {
continue
}
let diff = 0
for (let i = 0; i < word.length; ++i) {
if (word[i] !== searchWord[i]) diff++
if (diff > 1) break
}
if (diff === 1) return true
}
return false
};