• 79. 单词搜索


    79. 单词搜索

    给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false

    单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。

    示例 1:

    输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"
    输出:true
    

    示例 2:

    输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "SEE"
    输出:true
    

    示例 3:

    输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCB"
    输出:false
    

    提示:

    • m == board.length
    • n = board[i].length
    • 1 <= m, n <= 6
    • 1 <= word.length <= 15
    • boardword 仅由大小写英文字母组成
    class Solution {
    public:
        int dir[4][2] = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}};
        int vis[15][15];
        int n, m;
        bool dfs(vector<vector<char> >& board, string word, int x, int y, int k)
        {
            if(k == word.length())
                return true;
            for(int i = 0; i < 4; i++)
            {
                int tx = x + dir[i][0];
                int ty = y + dir[i][1];
                if(tx < 0 || ty < 0 || tx >=n || ty >= m || vis[tx][ty]) continue;
                if(board[tx][ty] == word[k])
                {
                    vis[tx][ty] = 1;
                    if(dfs(board, word, tx, ty, k + 1))
                        return true;
                    vis[tx][ty] = 0;
                }
            }
            return false;
        }
    
    
    
    
        bool exist(vector<vector<char>>& board, string word) {
            memset(vis, 0, sizeof(vis));
            n = board.size();
            m = board[0].size();
            for(int i = 0; i < n; i++)
            {
                for(int j = 0; j < m; j++)
                {
                    vis[i][j] = 1;
                    if(board[i][j] == word[0] && dfs(board, word, i, j, 1))
                        return true;
                    vis[i][j] = 0;
                }
            }
            return false;
    
    
    
        }
    };
  • 相关阅读:
    【2020-11-16】就是自己的松散意识在作怪
    JQuery 事件
    JQuery DOM 有关代码练习
    JQuery中的DOM操作
    主题简介 ASP .NET
    JQuery 选择器 *很重要 多记
    JQuery 基础
    Ajax 获取数据代码
    Ajax 介绍
    JavaScript 基础二
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/16617972.html
Copyright © 2020-2023  润新知