# 找到它是一个游戏,你需要在给定矩阵中找到给定单词,假定给定单词HELLOWORLD, # 注意区分大小写,上下左右查找,不能走回头路 # 如果能找到,输出单词首字母在矩阵中的位置 # 否则输出NO # 5 5 # HELLOWORLD # CPUCY # EKLQH # CHELL # LROWO # DGRBC # 输出:3 2 # # 5 5 # Helloworld # CPUCh # wolle # orldO # EKLQo # PGRBC # 输出:NO import sys def find(board, visited, x, y, s, k): if board[x][y] != s[k]: return False elif k == len(s) - 1: return True visited[x][y] = True dic = [[0, 1], [0, -1], [1, 0], [-1, 0]] for dir in dic: newx, newy = x + dir[0], y + dir[1] if (newx >= 0 and newx < len(board) and newy >= 0 and newy < len(board[0])): if not visited[newx][newy]: flag = find(board, visited, newx, newy, s, k + 1) if flag: return True visited[x][y] = False return False def solveMethod(board, word): h, w = len(board), len(board[0]) visited = [[False for _ in range(w)] for _ in range(h)] for i in range(h): for j in range(w): flag = find(board, visited, i, j, word, 0) if flag: return str(i + 1) + " " + str(j + 1) return "NO" if __name__ == "__main__": line = sys.stdin.readline().strip() M, N = map(int, line.split()) W = sys.stdin.readline().strip() matrix = [] for i in range(N): matrix.append(list(sys.stdin.readline().strip())) res = solveMethod(matrix, W) print(res)
27.找到它--OD
于 2024-03-24 12:37:51 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)