SHU-2016-SummerPractice / AlgorithmExerciseIssues

算法训练相关文件及工单。
https://github.com/SHU-2016-SummerPractice/AlgorithmExerciseIssues/issues
2 stars 0 forks source link

广搜 - 2016-7-25 #15

Open zhaokuohaha opened 7 years ago

zhaokuohaha commented 7 years ago

127 word ladder : https://leetcode.com/problems/word-ladder/ 126 word ladder II :https://leetcode.com/problems/word-ladder-ii/ :100:

wolfogre commented 7 years ago

127 word ladder : https://leetcode.com/problems/word-ladder/ 超时,仙人板板

/**
 * @param {string} beginWord
 * @param {string} endWord
 * @param {Set} wordList
 *   Note: wordList is a Set object, see:
 *   https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set
 * @return {number}
 */
var ladderLength = function(beginWord, endWord, wordList) {
    if(beginWord === endWord)
        return 1;

    var queue = [beginWord];
    wordList.delete(beginWord);

    var step = 1;

    function check(str1, str2) {
        var flag = false;
        for(var i = 0; i < str1.length; ++i){
            if(str1[i] !== str2[i])
                if(flag)
                    return false;
                else
                    flag = true;
        }
        return flag;
    }

    while(queue.length !== 0){
        var newQueue = [];
        while(queue.length !== 0){
            for (var v of wordList){
                if(check(queue[0], v)){
                    newQueue.push(v);
                    wordList.delete(v);
                }
            }
            queue.shift();
        }
        queue = newQueue;
        ++step;
        if(queue.indexOf(endWord) !== -1)
            return step;
    }
    return 0;
};