美文网首页
单词搜索

单词搜索

作者: 小白学编程 | 来源:发表于2018-10-02 09:52 被阅读0次

给定一个二维网格和一个单词,找出该单词是否存在于网格中。

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

示例:

board =
[
['A','B','C','E'],
['S','F','C','S'],
['A','D','E','E']
]

给定 word = "ABCCED", 返回 true.
给定 word = "SEE", 返回 true.
给定 word = "ABCB", 返回 false.

class Solution {
    public boolean exist(char[][] board, String word) {
        int cur=0;
        boolean[][] visits = new boolean[board.length][board[0].length];
       
        for (int i=0; i<board.length; ++i){
            for (int j=0; j<board[i].length; ++j){
                if (check(board, i, j, cur, word, visits)){
                    return true;
                }
            }
        }
        return false;
    }
    
    public boolean check(char[][] board, int row, int col, int cur, String word, boolean[][] visits){
        if (cur == word.length()){
            return true;
        }
        
        boolean hasPath = false;
        if (row >=0 && col >= 0 && row < board.length && col < board[0].length && word.charAt(cur) == board[row][col] && !visits[row][col]){
                visits[row][col] = true;
                //cur++;
                hasPath = (check(board, row+1, col, cur+1, word, visits) || check(board, row, col+1, cur+1, word, visits)|| check(board, row-1, col, cur+1, word, visits) || check(board, row, col-1, cur+1, word, visits));
            
             if(!hasPath){
               // cur--;
                visits[row][col] = false;
            }
        }
        return hasPath;
    }
}

相关文章

  • 单词搜索

    给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中...

  • 单词搜索

  • 单词搜索

    题目:给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成...

  • 单词搜索

    题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/word...

  • leetcode212 单词搜索II

    题目 单词搜索II 暴力解法 暴力解法就是用leetcode79 单词搜索这题的搜索一个单词的dfs方法,挨个搜索...

  • python实现leetcode之79. 单词搜索

    解题思路 不断搜索单词的后缀或者单词搜索完,返回True或者无路可走,周围都被搜索过,返回False 79. 单词...

  • LeetCode-79-单词搜索(Word Search)

    LeetCode-79-单词搜索(Word Search) 79. 单词搜索[https://leetcode-c...

  • LeetCode 单词搜索

    题目描述: 解题思路:这里考虑到使用字符串,并且设计到字符的搜索,想到采用前缀树来进行存储,并根据前缀树进行搜索 ...

  • 【leetcode】单词搜索

    【leetcode】单词搜索 题目: 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺...

  • 力扣 211 添加与搜索单词 - 数据结构设计

    题意:添加与搜索单词 思路: 在添加单词的适合,构建TrieNode 在搜索的时候,分成.和char不同情况,递归...

网友评论

      本文标题:单词搜索

      本文链接:https://www.haomeiwen.com/subject/slbooftx.html