
class Solution:
def hasPath(self, matrix, rows, cols, path):
matrix_two = [[0 for i in range(cols)] for j in range(rows)]
visited = [[False for i in range(cols)] for j in range(rows)]
for i in range(rows):
for j in range(cols):
matrix_two[i][j] = matrix[i*cols + j]
def dfs(kth, i, j):
if kth == len(path):
return True
res = False
if 0<=i<rows and 0<=j<cols and matrix_two[i][j]==path[kth] and visited[i][j] is not True:
visited[i][j] = True
res = dfs(kth+1, i+1,j) or dfs(kth+1, i-1,j) or dfs(kth+1, i,j+1) or dfs(kth+1, i,j-1)
if res is not True:
visited[i][j] = False
return res
for i in range(rows):
for j in range(cols):
if dfs(0, i, j):
return True
return False