class MazePath:
ans = 0
def __init__(self,A,b):
self.A = A
self.b = b
#flag = 0
def isPath(self,i,j,flag):
m,n = 4,4
if i<=m-1 and j<=n-1 and b[i][j]==0:
b[i][j] = 1
if A[i][j]==9:
flag = 1
else:
if ( (j+1)<=n-1 and b[i][j+1]==0 and A[i][j+1]==1 ): #right
flag = 1
self.isPath(i,j+1,flag)
if ( (i+1)<=m-1 and b[i+1][j]==0 and A[i+1][j]==1 ): #down
flag = 1
self.isPath(i+1,j,flag)
if ( (j-1)>=0 and b[i][j-1]==0 and A[i][j-1]==1 ): #left
flag = 1
self.isPath(i,j-1,flag)
if ( (i-1)>=0 and b[i-1][j]==0 and A[i-1][j]==1 ): #up
flag = 1
self.isPath(i-1,j,flag)
if flag==1:
return 1
else:
return 0
A = [
[1,1,0,0],
[0,1,0,1],
[0,1,0,1],
[1,1,9,1]
]
b = [
[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0]
]
o1 = MazePath(A,b)
print o1.isPath(0,0,0)
print b
Y2xhc3MgTWF6ZVBhdGg6CgkJCglhbnMgPSAwCglkZWYgX19pbml0X18oc2VsZixBLGIpOgoJCXNlbGYuQSA9IEEKCQlzZWxmLmIgPSBiCgkJCgkjZmxhZyA9IDAKCWRlZiBpc1BhdGgoc2VsZixpLGosZmxhZyk6CgkJbSxuID0gNCw0CgkJCgkJaWYgaTw9bS0xIGFuZCBqPD1uLTEgYW5kIGJbaV1bal09PTA6CgkJCWJbaV1bal0gPSAxCgkJCWlmIEFbaV1bal09PTk6CgkJCQlmbGFnID0gMQoJCQllbHNlOgoJCQkJaWYgKCAoaisxKTw9bi0xIGFuZCBiW2ldW2orMV09PTAgYW5kIEFbaV1baisxXT09MSApOgkJI3JpZ2h0CgkJCQkJZmxhZyA9IDEKCQkJCQlzZWxmLmlzUGF0aChpLGorMSxmbGFnKQoJCQkJaWYgKCAoaSsxKTw9bS0xIGFuZCBiW2krMV1bal09PTAgYW5kIEFbaSsxXVtqXT09MSApOgkJI2Rvd24KCQkJCQlmbGFnID0gMQoJCQkJCXNlbGYuaXNQYXRoKGkrMSxqLGZsYWcpCgkJCQlpZiAoIChqLTEpPj0wIGFuZCBiW2ldW2otMV09PTAgYW5kIEFbaV1bai0xXT09MSApOgkJCSNsZWZ0CgkJCQkJZmxhZyA9IDEKCQkJCQlzZWxmLmlzUGF0aChpLGotMSxmbGFnKQoJCQkJaWYgKCAoaS0xKT49MCBhbmQgYltpLTFdW2pdPT0wIGFuZCBBW2ktMV1bal09PTEgKToJCQkjdXAKCQkJCQlmbGFnID0gMQoJCQkJCXNlbGYuaXNQYXRoKGktMSxqLGZsYWcpCgkJCgkJaWYgZmxhZz09MToKCQkJcmV0dXJuIDEKCQllbHNlOgoJCQlyZXR1cm4gMAoJCQoKQSA9IFsKCQlbMSwxLDAsMF0sCgkJWzAsMSwwLDFdLAoJCVswLDEsMCwxXSwKCQlbMSwxLDksMV0KCV0KYiA9IFsKCQlbMCwwLDAsMF0sCgkJWzAsMCwwLDBdLAoJCVswLDAsMCwwXSwKCQlbMCwwLDAsMF0KCV0KCQpvMSA9IE1hemVQYXRoKEEsYikKcHJpbnQgbzEuaXNQYXRoKDAsMCwwKQpwcmludCBi