class Solution { public: bool exist(vector<vector<char> > &board, string word) { for(int i = 0; i < board.size(); i++) { for(int j = 0; j < board[i].size(); ++j) { if(search(board, i, j, word)) { return true; } } } return false; } bool search(vector<vector<char> >& board, int x, int y, string word) { if(x >= board.size() || y >= board[0].size()) { return word.empty(); } if(board[x][y] == '0') { return false; } if(word.length() == 1) { return word[0] == board[x][y]; } if(word[0] == board[x][y]) { char temp = board[x][y]; board[x][y] = '0'; string newWord(word.substr(1)); bool ret = search(board, x - 1, y, newWord) || search(board, x + 1, y, newWord) || search(board, x, y + 1, newWord) || search(board, x, y - 1, newWord); if(!ret) { board[x][y] = temp; } return ret; } return false; } };
4/12/2014
Leetcode -- Word Search
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment