`

LeetCode 79 - Word Search

 
阅读更多

Given a 2D board and a word, find if the word exists in the grid.

The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically neighboring. The same letter cell may not be used more than once.

For example,
Given board =

[
  ["ABCE"],
  ["SFCS"],
  ["ADEE"]
]

word = "ABCCED", -> returns true,
word = "SEE", -> returns true,
word = "ABCB", -> returns false.

public boolean exist(char[][] board, String word) {
    int m=board.length, n=board[0].length;
    boolean[][] used = new boolean[m][n];
    for(int i=0; i<m; i++) {
        for(int j=0; j<n; j++) {
            if(search(board, used, word, 0, i, j)) return true;
        }
    }
    return false;
}

public boolean search(char[][] board, boolean[][] used, String s, int index, int i, int j) {
    if(index == s.length()) return true;
    if(i<0 || j<0 || i==board.length || j == board[0].length 
        || used[i][j] || board[i][j] != s.charAt(index)) return false;
    used[i][j] = true;
    boolean result = search(board, used, s, index+1, i+1, j) || 
                    search(board, used, s, index+1, i-1, j) || 
                    search(board, used, s, index+1, i, j+1) || 
                    search(board, used, s, index+1, i, j-1);
    used[i][j] = false;
    return result;
}

 

分享到:
评论

相关推荐

    js-leetcode题解之79-word-search.js

    javascript js_leetcode题解之79-word-search.js

    C语言-leetcode题解之79-word-search.c

    c语言入门 C语言_leetcode题解之79-word-search.c

    python-leetcode题解之079-Word-Search

    python python_leetcode题解之079_Word_Search

    c语言-leetcode题解之0079-word-search.zip

    c c语言_leetcode题解之0079_word_search.zip

    leetcode1-200题源码(c++)

    4. 题目79:单词搜索 (Word Search) 在一个二维字符网格中查找给定的单词,使用深度优先搜索(DFS)或广度优先搜索(BFS)策略,结合回溯技术来实现。 5. 题目4:寻找两个有序数组的中位数 (Median of Two Sorted ...

    leetcode耗时-word-search-ii:查词二

    leetcode 耗时查词二 给定一个 2D 板和字典中的单词列表,找到板中的所有单词。 每个单词必须由顺序相邻单元格的字母构成,其中“相邻”单元格是水平或垂直相邻的单元格。 同一个字母单元格不能在一个单词中多次使用...

    leetcode不会-word-search:二维网格中的单词搜索

    leetcode 不会词搜索 给定一个 2D 板和一个单词,查找该单词是否存在于网格中。 单词可以由顺序相邻的单元格的字母构成,其中“相邻”单元格是水平或垂直相邻的单元格。 同一个字母单元格不能多次使用。 Example: ...

    leetcode答案-exercise-book:算法练习记录

    Search 解决方法:DFS LeetCode: 31. Next Permutation 解决方法:掌握排列组合的字典序规律,即可。这个规律找不到,我最后还是直接看答案的。 LeetCode: 581. Shortest Unsorted Continuous Subarray 解决方法:无...

    _leetcode-python.pdf

    - Word Search: 给定一个m×n的二维字符网格board和一个单词(字符串)word,如果word存在于网格中,则返回true;否则,返回false。 - Minimum Window Substring: 给定两个字符串s和t,找出s中包含t所有字母的最小子...

    扩展矩阵leetcode-Leetcode:LeetcodeAnswer-Java

    扩展矩阵leetcode Leetcode Leetcode Answer-Java 数组 11.乘最多水容器 ...wordBreak 279.完全平方数 numSquares 排序 56.合并区间 merge 75.颜色分类 sortColors 179.最大数 largestNumber 324.摆

    leetcode苹果-LeetCode_No.208_-:LeetCode_No.208_-

    leetcode 苹果 LeetCode_No.208_-实现 Trie (前缀树) 题目介绍 Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完...

    leetcode浇花-LCSolutions:我的力扣解决方案

    leetcode 浇花力扣解决方案 简单的 #0001 - Two Sum #0007 - Reverse Integer #0009 - Palindrome Number #0035 - Search Insert Position #0058 - Length of Last Word #0066 - Plus One #0083 - Remove Duplicates...

    leetcode答案-leetcode:leetcode

    Search)+ 鸽笼原理(Pigeonhole Principle) “不允许修改数组” 与 “常数空间复杂度”这两个限制条件意味着:禁止排序,并且不能使用Map等数据结构 小于O(n2)的运行时间复杂度可以联想到使用二分将其中的一个n...

    leetcode338-LeetCode:力码

    单词搜索II(Word Search II)**:这是单词搜索问题的升级版,需要在一个二维字符网格中寻找多个给定单词。此题需要用到回溯法和动态规划,同时理解字符串匹配算法如KMP或Rabin-Karp。 4. **301. 删除无效的括号...

    leetcode分类-leetcode:leetcode刷题

    1. **字符串匹配**:如“单词搜索”(Word Search),需要在一个二维字符网格中查找给定单词。 2. **字符串反转与替换**:如“反转字符串”(Reverse String)和“替换空格”(Replace Spaces)。 3. **字符串哈希...

    leetcode不会-interview_practice:将我所有的编码面试实践整合到一个地方

    leetcode/0079-word-search - 我的解决方案太冗长了(逻辑很好) hackerrank/data_structures/trie/contacts.py 我做了一个 trie 的完整实现,但实际上这个问题不需要前缀补全,只需要知道子树中的节点数,这在插入...

    LeetCode最全代码

    * [Binary Search Tree](https://github.com/kamyu104/LeetCode#binary-search-tree) * [Breadth-First Search](https://github.com/kamyu104/LeetCode#breadth-first-search) * [Depth-First Search]...

    leetcode添加元素使和等于-Leetcode-Problems-Java-Python--with-Markdown-Explanati

    leetcode添加元素使和等于 October 2nd Reviews 79 word Search Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from letters of sequentially adjacent cell, ...

    AlgorithmAndLeetCode#itcharge-LeetCode-Py#0211. 添加与搜索单词 - 数据结构设计

    void addWord(word) 将 word 添加到数据结构中,之后可以对它进行匹配bool search(word) 如果数据结构中存在字符串与 wor

Global site tag (gtag.js) - Google Analytics