美文网首页
单词搜索

单词搜索

作者: Haward_ | 来源:发表于2019-09-27 22:05 被阅读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) {
        boolean res = false;
        int m = board.length;
        int n = board[0].length;
        for(int i=0;i<m;i++) {
            for(int j=0;j<n;j++) {
                int[][] flag = new int[m][n];
                res |= fExist(board,flag,word,0,i,j);
            }
        }
        return res;
    }
    
    private boolean fExist(char[][] board,int[][] flag,String word,int index,int i,int j) {
        if(index > word.length()-1) {
            return true;
        }
        if(i<0 || i>board.length-1 || j<0 || j>board[0].length-1) {
            return false;
        }
        if(board[i][j]==word.charAt(index) && flag[i][j]==0) {
            flag[i][j] = 1;
            boolean res = fExist(board,flag,word,index+1,i+1,j) || fExist(board,flag,word,index+1,i-1,j)
                || fExist(board,flag,word,index+1,i,j-1) || fExist(board,flag,word,index+1,i,j+1);
           // 记得释放回原状态
            flag[i][j] = 0;
            return res;
        }else {
            return false;
        }
    }
}

相关文章

  • 单词搜索

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

  • 单词搜索

  • 单词搜索

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

  • 单词搜索

    题目来源:力扣(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/ziaauctx.html