pattern:a*abcd
str:abcd
class Solution {
public:
bool match(char* str, char* pattern)
{
if(!str||!pattern)return false;
return matchCore(str,pattern);
}
bool matchCore(char* str,char* pattern)
{
if(*str=='\0'&&*pattern=='\0')return true;
if(*str!='\0'&&*pattern=='\0')return false;
if(*(pattern+1)=='*')
{
if(*str==*pattern||(*pattern=='.'&&*str!='\0'))
return matchCore(str,pattern+2)||matchCore(str+1,pattern);//见上方例子
else return matchCore(str,pattern+2);
}
else{
if(*str==*pattern||(*pattern=='.'&&*str!='\0'))
return matchCore(str+1,pattern+1);
else return false;
}
}
};