示例代码:
class Boggle:
def __init__(self, dictionary):
self.dictionary = dictionary
self.n = None
self.m = None
self.visited = None
self.board = None
self.result = set()
def find_words(self, board):
self.n, self.m = len(board), len(board[0])
self.visited = [[False] * self.m for _ in range(self.n)]
self.board = board
for i in range(self.n):
for j in range(self.m):
self.dfs(i, j, '')
return list(self.result)
def dfs(self, i, j, path):
if i < 0 or j < 0 or i >= self.n or j >= self.m or self.visited[i][j]:
return
path += self.board[i][j]
self.visited[i][j] = True
if path in self.dictionary:
self.result.add(path)
if self.dictionary.has_prefix(path):
self.dfs(i-1, j-1, path)
self.dfs(i+1, j+1, path)
self.dfs(i-1, j+1, path)
self.dfs(i+1, j-1, path)
self.dfs(i, j-1, path)
self.dfs(i, j+1, path)
self.dfs(i-1, j, path)
self.dfs(i+1, j, path)
self.visited[i][j] = False
在这个示例代码中,我们使用了一个Boggle类来进行Boggle游戏的查找。在构