C++ 代码
/*
考虑递归的话,就很舒服
*/
class Solution {
public:
bool isMatch(string s, string p) {
return isMatchInner( s.c_str(), p.c_str());
}
bool isMatchInner(const char*s,const char* p){
//
if(*p==0){
return *s==0;
}
bool curMatch=*s&&(*s==*p||*p=='.');
if(*(p+1)=='*'){
//等于*的时候s对应的位置可能不匹配,也可能匹配很多次
return isMatchInner(s,p+2)||(curMatch&&isMatchInner(++s,p));
}else{
return curMatch&&isMatchInner(++s,++p);
}
}
};