leetcode 79单词搜索使用JavaScript 到目前为止一切顺利!

问题描述

我尝试使用JavaScript解决leetcode 79,但是此测试用例失败:

[[“ A”,“ B”,“ C”,“ E”],[“ S”,“ F”,“ C”,“ S”],[“ A”,“ D”,“ E“,” E“]] “ ABCB”

我的代码如下:

/**
 * @param {character[][]} board
 * @param {string} word
 * @return {boolean}
 */
var exist = function(board,word) {
    let row = board.length,col = board[0].length;
    
    let dfs = (word,r,c) =>{
        if (!word.length){
            return true;
        }
        else if (r>=0 && r<row && c>=0 && c<col && word[0] === board[r][c]){

            let tmp = board[r][c];
            board[r][c] = '#';
            console.log(word[0],board,c)
            if (dfs(word.substr(1),r+1,c) || dfs(word.substr(1),r-1,c+1) || word.substr(1),c-1){
                return true;
            }
            board[r][c] = tmp;
            return false;
        }
        else{
            return false;
        }
    }
    for (let r=0; r<row; r++){
        for (let c=0; c<col; c++){
            if (dfs(word,c)){
                return true;
            }
        }
    }
    return false;
};

我的Python解决方案使用相同的逻辑,并且通过了。我真的不在哪里,我错了,被困了几个小时....

解决方法

到目前为止一切顺利!

  • 我的猜测是,该错误将出现在深度优先搜索rowselse if中。

  • 这会通过,与DFS类似:

else