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?