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

Word Search

时间:2017-06-10 19:31:06      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:str   bool   tor   方法   vector   使用   board   visit   exist   

方法:使用递归的方式实现:

class Solution {
public:
    bool exist(vector<vector<char>>& board, string word) {
        int m = board.size(), n = board[0].size();
        vector<vector<bool>> visited =  vector<vector<bool>>(m, vector<bool>(n, false));
        
        for(int i=0; i<m; ++i)
        {
            for(int j=0; j<n; ++j)
            {
                if(dfs(board, visited, word, i, j, 0))
                    return true;
            }
        }
        
        return false;
    }
    
    bool dfs(vector<vector<char>> &board, vector<vector<bool>> &visited, string &word, int i, int j, int index)
    {
        if(index == word.size())
            return true;
            
        if(i < 0 || j < 0 || i >= board.size() || j >= board[0].size())
            return false;
        
        if(word[index] != board[i][j])
            return false;
        if(visited[i][j])
            return false;
        
        visited[i][j] = true;
        bool ret = dfs(board, visited, word, i-1, j, index+1) || dfs(board, visited, word, i+1, j, index+1) || dfs(board, visited, word, i, j-1, index+1) || dfs(board, visited, word, i, j+1, index+1);
        visited[i][j] = false;
        return ret;
    }
};

 

Word Search

标签:str   bool   tor   方法   vector   使用   board   visit   exist   

原文地址:http://www.cnblogs.com/chengyuz/p/6979459.html

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