示例#1
0
 bool search(vector<vector<char> > &board, int x, int y, const string & word, int cur, 
             vector<vector<bool > > &visited) {
     if ( word[cur] == board[x][y]) {
         if ( cur == word.length()-1) return true;
         visited[x][y] = true;
         for(int i=0; i < numDirs; ++i) {
             int n_x = x + delta_x[i];
             int n_y = y + delta_y[i];//BUG TYPO x + delta_y
             if ( isValidRow(n_x, board) && isValidCol(n_y, board)) {
                 if (!visited[n_x][n_y] && search(board, n_x, n_y, word, cur+1, visited) ) { //BUG: missing visited
                     return true;
                 }
             }
         }
         visited[x][y] = false;
     }
     return false;
 }
示例#2
0
    bool isValidSudoku(vector<vector<char>>& board) {
        for (int i = 0; i < 9; ++i) {
            if (!isValidRow(board, i))
                return false;
        }

        for (int j = 0; j < 9; ++j) {
            if (!isValidCol(board, j))
                return false;
        }

        for (int r = 0; r < 7; r += 3) {
            for (int c = 0; c < 7; c += 3) {
                if (!isValidSubBox(board, r, c))
                    return false;
            }
        }

        return true;
    }