zoukankan      html  css  js  c++  java
  • 边工作边刷题:70天一遍leetcode: day 21-2

    要点:题目不难,但是dfs有很多要素,可以有很多方式组织实现,关键是如何固定实现从而使code的错误最小。

    • visited要在dfs函数开头set,而在函数结尾reset。同理,当前字符的匹配也在开始
    • 这样看出规律,都是在函数内检查pass-in参数的状况,这样是最精简的code
    • 一般True的结束条件是超过边界,但是这题的特殊在于,如果超过border是不进一步dfs的,所以没机会返回True。因此,要在最后一个字符匹配后返回True。同样如果所有dfs都fail掉最终返回False

    错误点:

    • word的index和board的index是分开的,起始点word总是0,而board是i,j循环变量
    • 如果用1d index,算法会很慢
    class Solution(object):
        def exist(self, board, word):
            """
            :type board: List[List[str]]
            :type word: str
            :rtype: bool
            """
            def helper(board, i, j, start, word):
                
    
                if word[start]!=board[i][j]:
                    return False
    
                if start==len(word)-1:
                    return True
                #print i,j
                
                c = board[i][j]
                board[i][j]='.'
    
                m = len(board)
                n = len(board[0])
    
                if i+1<m and helper(board, i+1, j, start+1, word):
                    return True
                
                if i-1>=0 and helper(board, i-1, j, start+1, word):
                    return True
                    
                if j+1<n and helper(board, i, j+1, start+1, word):
                    return True
                    
                if j-1>=0 and helper(board, i, j-1, start+1, word):
                    return True
                
                board[i][j]=c
                return False
                    
            m = len(board)
            n = len(board[0])
            for i in range(m):
                for j in range(n):
                    if board[i][j]==word[0]:
                        if helper(board, i, j, 0, word):
                            return True
            
            return False
    
    
  • 相关阅读:
    11种常用css样式之background学习
    11种常用css样式之开篇文本字体学习
    学习css常用基本层级伪类属性选择器
    学习了解CSS3发展方向和CSS样式与优先级
    常见CSS3选择器和文本字体样式汇总
    简单了解css3样式表写法和优先级
    4——PHP比较&&复制运算符
    虚基类
    string类中getline函数的应用
    string类应用举例
  • 原文地址:https://www.cnblogs.com/absolute/p/5677969.html
Copyright © 2011-2022 走看看