程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> [leetcode]word search

[leetcode]word search

編輯:C++入門知識

class Solution {
public:
    bool dfs(vector<vector<char> > &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<vector<char> > &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;
        
    }
};

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved