代码:
bool isMatch(const char *s, const char *p) {
if(*s=='\0'&&*p=='\0')
return true;
if(*s!='\0'&&*p=='\0')
return false;
if(*(p+1)=='*'){
if(*s==*p||(*p=='.'&&*s!='\0')) //1 忽略* 和它前面的字符 2 匹配一次 3 匹配多次
return isMatch(s,p+2)||isMatch(s+1,p+2)||isMatch(s+1,p);
else //忽略*和它前面的字符
return isMatch(s,p+2);
}
if(*s==*p||(*p=='.'&&*s!='\0'))
return isMatch(s+1,p+1);
else
return false;
}