本文主要是介绍Leetcode 2018. Check if Word Can Be Placed In Crossword [Python],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
把每行,每列提出来,如果中间有障碍物,把障碍物作为分格。遍历每行里的连续(被障碍隔开的部分)的空间,如果长度和word一样,且出现字符的位置和word出字符的位置一样,则返回true,注意无论是顺着word还是逆序出现的word字符,都可以判定为true。
同时注意for else用法。
class Solution:def placeWordInCrossword(self, board: List[List[str]], word: str) -> bool:charset = []for i, w in enumerate(word):charset.append((i,w))for i in range(len(board)):row = board[i][:]if self.check(row, charset):return Truefor j in range(len(board[0])):col = []for i in range(len(board)):col.append(board[i][j])if self.check(col, charset):return Truereturn Falsedef check(self, row, charset):rowlist = ''.join(row).split('#')for part in rowlist:if len(part) != len(charset):continuefor index, char in enumerate(part):if char != ' ' and (index, char) not in charset:breakelse:return Truefor index, char in enumerate(reversed(part)):if char != ' ' and (index, char) not in charset:breakelse:return Truereturn False
这篇关于Leetcode 2018. Check if Word Can Be Placed In Crossword [Python]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!