How do i memoise this


#1

bool w(int i,int j,string z,string x,vector<vector>&dp){
bool q=false;

if(i>=z.length() && j>=x.length()){
return true;
}

if(x[j]=='?' && i<z.length() || x[j]==z[i]){
    return w(i+1,j+1,z,x);
    
}
else if(x[j]=='*'){
    for(int l=i;l<=z.length();l++){
        q=q||w(l,j+1,z,x);
    }
    return q;
}
return false;

}
int Solution::isMatch(const string A, const string B) {
string z=A;
string x=B;
// vector<vector>dp(10000,vector(10000,-1));
return w(0,0,z,x,dp);
}