C++ | Leetcode C++题解之第79题单词搜索

题目:

题解:

cpp 复制代码
class Solution {
public:
    bool exist(vector<vector<char>>& board, string word) {
        rows = board.size();
        cols = board[0].size();
        for(int i = 0; i < rows; i++) {
            for(int j = 0; j < cols; j++) {
                if (dfs(board, word, i, j, 0)) return true;
            }
        }
        return false;
    }
private:
    int rows, cols;
    bool dfs(vector<vector<char>>& board, string word, int i, int j, int k) {
        if (i >= rows || i < 0 || j >= cols || j < 0 || board[i][j] != word[k]) return false;
        if (k == word.size() - 1) return true;
        board[i][j] = '\0';
        bool res = dfs(board, word, i + 1, j, k + 1) || dfs(board, word, i - 1, j, k + 1) || 
                      dfs(board, word, i, j + 1, k + 1) || dfs(board, word, i , j - 1, k + 1);
        board[i][j] = word[k];
        return res;
    }
};
相关推荐
liulilittle1 小时前
LinkedList 链表数据结构实现 (OPENPPP2)
开发语言·数据结构·c++·链表
无聊的小坏坏1 小时前
三种方法详解最长回文子串问题
c++·算法·回文串
山河木马1 小时前
前端学习C++之:.h(.hpp)与.cpp文件
前端·javascript·c++
2401_891957311 小时前
list的一些特性(C++)
开发语言·c++
qq_513970442 小时前
力扣 hot100 Day37
算法·leetcode
不見星空2 小时前
leetcode 每日一题 1865. 找出和为指定值的下标对
算法·leetcode
米饭「」2 小时前
C++AVL树
java·开发语言·c++
心愿许得无限大3 小时前
Qt 常用界面组件
开发语言·c++·qt
GiraKoo3 小时前
【GiraKoo】C++17的新特性
c++
Rockson3 小时前
C++如何查询实时贵金属行情
c++·api