版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_36811967/article/details/87931894
回溯,参考leetcode79. 单词搜索,注意这里给的matrix和path都是字符串:
# -*- coding:utf-8 -*-
class Solution:
def hasPath(self, matrix, rows, cols, path):
# write code here
def helper(count, locs, a, b):
if count == len(path):
return True
if a<0 or a>=rows or b<0 or b>=cols:
return False
if [a, b] not in locs and path[count]==matrix[a*cols+b]:
return helper(count+1, locs+[[a,b]], a+1, b) or \
helper(count+1, locs+[[a,b]], a-1, b) or \
helper(count+1, locs+[[a,b]], a, b+1) or \
helper(count+1, locs+[[a,b]], a, b-1)
return False
for i in range(rows):
for j in range(cols):
if helper(0, [], i, j):
return True
return False