python 矩阵找单词
Python是一种非常强大的编程语言,它有很多好用的库,在文本处理方面也不例外。矩阵找单词是其中一种经典问题,也是Python库利用之一。下面我们来看看怎样使用Python解决这个问题。
# 要查找的单词列表 word_list = ["hello", "world", "python"] # 要查找的矩阵 matrix = [['h', 'e', 'l', 'l', 'o'], ['w', 'o', 'r', 'l', 'd'], ['p', 'y', 't', 'h', 'o'], ['n', 'j', 'k', 'l', 'm']] # 定义八个方向,用于搜索 directions = [(0, 1), (1, 0), (0, ⑴), (⑴, 0), (1, 1), (1, ⑴), (⑴, 1), (⑴, ⑴)] # 定义函数,用于搜索矩阵中的单词 def search(word, row, col): # 如果单词长度为0,直接返回成功 if len(word) == 0: return True # 检查当前位置会不会合法,会不会与单词首字母相同 if row< 0 or col< 0 or row >= len(matrix) or col >= len(matrix[0]) or matrix[row][col] != word[0]: return False # 递归搜索八个方向的路径 for dir in directions: result = search(word[1:], row+dir[0], col+dir[1]) if result: return True return False # 遍历查找所有单词 for word in word_list: found = False for row in range(len(matrix)): for col in range(len(matrix[0])): if search(word, row, col): found = True break if found: break if found: print("\"{}\" exists in the matrix".format(word)) else: print("\"{}\" doesn't exist in the matrix".format(word))
在这个例子中,我们定义了一个要查找的单词列表和一个要查找的矩阵,然后定义了八个方向,用于搜索路径。我们定义了一个search函数,用于递归搜索所有路径,同时使用适当的if语句来检查当前位置会不会合法,并检查会不会与单词首字母相同。最后,对每一个要查找的单词,我们使用两个for循环遍历全部矩阵,搜索所有可能的路径,终究肯定会不会存在该单词。
文章来源:丸子建站
文章标题:python 矩阵找单词
https://www.wanzijz.com/view/76275.html