Leetcode 79 Word Search (JavaScript) 的问题

各位邦友好,敝人想问一下leetcode
https://leetcode.com/problems/word-search/

这是一道典型的DFS题,我用JavaScript写的:

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] = '#';
            if (dfs(word.substr(1), r+1, c) || dfs(word.substr(1), r-1, c) || dfs(word.substr(1), r, c+1) || word.substr(1), r, 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, r, c)){
                return true;
            }
        }
    }
    return false;
};

但是以下这个TEST CASE无法通过
[["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]]
"ABCB"

我用Python写,和上面JavaScript的程序相同的逻辑,就通过了

class Solution(object):
    def exist(self, board, word):
        """
        :type board: List[List[str]]
        :type word: str
        :rtype: bool
        """
        row = len(board)
        col = len(board[0])
        
        def dfs(word, r, c):
            if not word:
                return True
            elif (r>=0 and r<row and c>=0 and c<col and board[r][c] == word[0]):
                tmp = board[r][c]
                board[r][c] = '#'
                if (dfs(word[1:],r+1,c) or dfs(word[1:],r-1,c) or dfs(word[1:],r,c+1) or dfs(word[1:],r,c-1)):
                    return True
                board[r][c] = tmp
            else:
                return False
        
        
        for r in range(row):
            for c in range(col):
                if dfs(word, r, c):
                    return True
        return False

敝人真的不知道自己的JavaScript程序码错在哪,也不懂该从何debug起
不知这里有没有高手愿意提点,谢谢!


<<:  The Effective CISSP考试攻略

>>:  迈向CISSP成功之路(读书心得)

变更管理(Change Management)

基线的变更(任何正式批准的变更)均应进行管理。如果选定的安全控制未得到批准,未批准或未设定基线,则无...

D08 / 怎麽做自己的 Modifier.padding? - Custom Layout Modifier

今天大概会聊到的范围 layout modifier 上一次讨论到 Modifier 时,觉得自己...

推荐好用的 Nutanix Leap

此文由 Nutanix 首席技术营销工程师 Dwayne Lessner 撰写 Nutanix/X...

Day30

跟熊熊的课程学习也告一段落了,草莓也发现自己要学的还有很多,同时觉得这一个月的自己变得很不ㄧ样,原来...

30天学会C语言: Day 19-考试常用的输入格式

多行输入 or 单行多个数值 如果输入的行数或一行中输入的数值数量固定且非常多,可以用回圈达成 #i...