Rat In A Maze

Problem Link: https://practice.geeksforgeeks.org/problems/rat-in-a-maze-problem/1

class Solution:
    def findPath(self, arr, n):
        # code here
        
        ans=[]
        visited=[[False for i in range(n)] for j in range(n)]
        def recursion(curri,currj,desti,destj,visited,string):
            
            if(curri==desti and currj==destj):
                ans.append(string)
                return
            
            if(curri<0 or curri>=n or currj<0 or currj>=n or visited[curri][currj]==True or arr[curri][currj]==0):
                return
            
            visited[curri][currj]=True
            recursion(curri+1,currj,desti,destj,visited,string+"D")
            visited[curri][currj]=False
            
            visited[curri][currj]=True
            recursion(curri,currj+1,desti,destj,visited,string+"R")
            visited[curri][currj]=False
            
            visited[curri][currj]=True
            recursion(curri-1,currj,desti,destj,visited,string+"U")
            visited[curri][currj]=False
            
            visited[curri][currj]=True
            recursion(curri,currj-1,desti,destj,visited,string+"L")
            visited[curri][currj]=False
        
        if(arr[0][0]==0 or arr[n-1][n-1]==0):
            return []
        recursion(0,0,n-1,n-1,visited,"")
        return ans

Last updated