Regular Expression Matching

class Solution {

public:

bool isMatch(string s, string p) {

int i=0,j=0;

if(p[i]=='\0') return s[j]=='\0';

if(p[i+1]=='*'){

while(s[j]==p[i] || (p[i] =='.' && s[j]!='\0')){

if(isMatch(s.substr(j),p.substr(i+2)))

return true;

j++;

}

return isMatch(s.substr(j),p.substr(i+2));

}else{

if(s[j]==p[i] || (p[i] =='.' && s[j]!='\0'))

return isMatch(s.substr(++j), p.substr(++i));

else

return false;

}

}

};

Last updated

Was this helpful?