码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 79. Word Search

时间:2018-05-02 02:37:19      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:exist   color   nbsp   turn   ring   size   code   class   str   

典型dfs题,按照框架写。由于之前刚做了200和694,dfs写的很顺手。不同于前两道,dfs需要返回布尔值,因此代码上有些许差异,但总体结构是一样的。

递归终止条件都写在了最前面。

 

class Solution {
public:
    int di[4]={0,0,1,-1};
    int dj[4]={1,-1,0,0};
    
    bool exist(vector<vector<char>>& board, string word) {
        for (int i=0;i<board.size();++i){
            for (int j=0;j<board[0].size();++j){
                if (dfs(board,i,j,word,0)) return true;
            }
        }
        return false;
    }
    
    bool dfs(vector<vector<char>> &board, int i, int j, string &word, int index){if (i<0||i>=board.size()||j<0||j>=board[0].size()||board[i][j]!=word[index]) 
            return false;
        if (index==word.size()-1) return true;
        
        char copy=board[i][j];
        board[i][j] = #;
        
        bool tmp=false;
        for (int k=0;k<4;++k){
            if (dfs(board,i+di[k],j+dj[k],word,index+1)){
                tmp = true;
                break;
            }
        }
        board[i][j] = copy;
        return tmp;
    }
};

 

LeetCode 79. Word Search

标签:exist   color   nbsp   turn   ring   size   code   class   str   

原文地址:https://www.cnblogs.com/hankunyan/p/8977896.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!