[leetcode]word search

2014-11-23 22:25:52 ? 作者: ? 浏览: 3
class Solution {
public:
    bool dfs(vector > &board, string word, int i, int j){
        int M = board.size();
        int N = board[0].size();
        
        if(i < 0 || j < 0 || i >= M || j >= N || board[i][j]!=word[0]) return false;
        
        if(word.size() == 1) return true;
        
        board[i][j] = '#';
        
        bool tmp = dfs(board, word.substr(1,word.size()-1), i-1, j) ||
                dfs(board, word.substr(1,word.size()-1), i+1, j) ||
                dfs(board, word.substr(1,word.size()-1), i, j-1) ||
                dfs(board, word.substr(1,word.size()-1), i, j+1);
        
        board[i][j] = word[0];
        return tmp;
    }


    bool exist(vector > &board, string word) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        if(board.empty()) return false;
        for(int i = 0; i < board.size(); i++){
            for(int j = 0; j < board[0].size(); j++){
                if(dfs(board, word, i, j)) return true;
            }
        }
        
        return false;
        
    }
};

-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: