【leetcode】676. 实现一个魔法字典

56 阅读1分钟

leetcode-676.png

主要实现的地方就在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
};