python中重要的单词_Python中的单词搜索

假设我们有一个2D板和一个单词,我们必须查找单词是否存在于网格中。单词可以由顺序相邻的单元格的字母组成,“相邻”单元格是水平或垂直相邻的单元格。我们不应多次使用同一个字母单元格。所以如果矩阵像-一种乙CË

小号FC小号

一种dËF

给定单词“ ABCCED”,答案将是正确的,对于单词“ SEE”,它将是正确的,但是对于“ ABCB”,如果答案是错误的。

让我们看看步骤-我们将使用递归方法解决此问题。因此,如果调用了递归方法名称find(),则需要矩阵矩阵,单词,行,列和索引i。最初,索引i = 0

如果i =字长,则返回True

如果row> = mat的行数或row <0或col> = mat的列数或col <0或word [i]与mat [row,col]不同,则返回false

mat [row,col]:=“ *”

res:= find(mat,word,row + 1,col,i +1)或find(mat,word,row-1,col,i + 1)或find(mat,word,row,col + 1,i + 1)或find(mat,word,row,col-1,i + 1)

mat [row,col]:=单词[i]

返回资源

主要任务将像-

n:=行数和m:=列数

当我的范围是0到n如果word [0] = mat [i,j]

如果find(mat,word,i,j)不为假,则返回true

对于0到m范围内的j

让我们看下面的实现以更好地理解-

示例class Solution(object):

def exist(self, board, word):

n =len(board)

m = len(board[0])

for i in range(n):

for j in range(m):

if word[0] == board[i][j]:

if self.find(board,word,i,j):

return True

return False

def find(self, board,word,row,col,i=0):

if i== len(word):

return True

if row>= len(board) or row <0 or col >=len(board[0]) or col<0 or word[i]!=board[row][col]:

return False

board[row][col] = '*'

res = self.find(board,word,row+1,col,i+1) or self.find(board,word,row-1,col,i+1) or self.find(board,word,row,col+1,i+1) or self.find(board,word,row,col-1,i+1)

board[row][col] = word[i]

return res

ob1 = Solution()print(ob1.exist([["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]],"SEE"))

输入值[["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]]

"SEE"

输出结果True

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值