zoukankan      html  css  js  c++  java
  • LeetCode 79. 单词搜索

    给定一个二维网格和一个单词,找出该单词是否存在于网格中。
    单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。
    同一个单元格内的字母不允许被重复使用。

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

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

    提示:
    board 和 word 中只包含大写和小写英文字母。
    1 <= board.length <= 200
    1 <= board[i].length <= 200
    1 <= word.length <= 10^3

    class Solution:
        def exist(self, board: List[List[str]], word: str) -> bool:
            def helper(board, mark, i, j, word):
                if i < 0 or i >= len(board) or j < 0 or j>=len(board[0]):   ## 边界条件判断
                    return False
                if mark[i][j] is True:           ## 访问标记判断
                    return False 
                if board[i][j] != word[0]:       ## 判断字符匹配条件
                    return False
                else:
                    if len(word) == 1:  ## 结束递归判断
                        return True
                    else:
                        mark[i][j] = True          ## 标记为已访问
                        result = helper(board, mark, i+1,j,word[1:]) or 
                               helper(board, mark, i,j+1,word[1:]) or 
                               helper(board, mark, i-1,j,word[1:]) or 
                               helper(board, mark, i,j-1,word[1:]) 
                        mark[i][j] = False         ## 恢复未访问标记
                        return result
    
            mark = [[False for _ in range(len(board[0]))] for __ in range(len(board))]
            for i in range(len(board)):
                for j in range(len(board[0])):
                    result = helper(board,mark,i,j,word)
                    if result:
                        return True
            return result
    
  • 相关阅读:
    js学习---常用的内置对象(API)小结 :
    js第四天学习小结:
    学习js第三天小结
    学习js第二天小结
    tomcat+redis会话共享
    linux文件归档脚本
    服务器群秒级别文件同步(ssh+SHELL)
    elasticsearch的索引自动清理及自定义清理
    ELK安装配置
    Logstash自带正则表达式
  • 原文地址:https://www.cnblogs.com/sandy-t/p/13287300.html
Copyright © 2011-2022 走看看