zoukankan      html  css  js  c++  java
  • 单词搜素 python

    # 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 
    #
    # 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
    #
    #
    #
    # 示例 1:
    #
    #
    # 输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "AB
    # CCED"
    # 输出:true

    方法:深度优先

    def findWords(board, word):
        if not board or not word:
            return False
        def dfs(board,i,j,word):
            if len(word) == 0:
                return True
            if i<0 or i>=len(board) or j<0 or j>=len(board[0]) or word[0] != board[i][j]:
                return False
            tmp = board[i][j]
            board[i][j] = "#"
            res = dfs(board, i+1, j, word[1:]) or dfs(board, i-1, j, word[1:]) or dfs(board, i, j+1, word[1:]) or 
            dfs(board, i, j-1, word[1:])
            board[i][j] = tmp
            return res
        for i in range(len(board)):
            for j in range(len(board[0])):
                if dfs(board, i, j, word):
                    return True
        return False
    时刻记着自己要成为什么样的人!
  • 相关阅读:
    大话领域驱动
    c#之循环效率
    编程思想之——"人是活的,程序是死的"
    C#之系统异常处理机制
    EF操作扩展之async
    C#提供APP接口之JSON差异
    EF操作MySql
    WCF 消息压缩性能问题及解决方法
    [NoSQL]-Elasticsearch 7.9
    [Linux]-Debian10基础使用
  • 原文地址:https://www.cnblogs.com/demo-deng/p/15006144.html
Copyright © 2011-2022 走看看