题目描述
bool match(char* str, char* pattern)
{
//
if(str==NULL&&pattern==NULL) return false;
return matchPattern(str,pattern);
}
bool matchPattern(char*str,char*pattern)
{
if(*str=='\0'&&*pattern=='\0') return true;
if(*str!='\0'&&*pattern=='\0') return false;
if(*(pattern+1)=='*')
{
//!
if(*pattern==*str||(*str!='\0'&&*pattern=='.'))//1至n匹配
return matchPattern(str+1,pattern)||matchPattern(str,pattern+2);
// if
// return matchPattern(str+1,pattern+2);
if(*pattern!=*str)//0匹配
return matchPattern(str,pattern+2);
}
if(*pattern=='.')
{
if(*str=='\0')return false;
return matchPattern(str+1,pattern+1);
}
if(*str==*pattern)
return matchPattern(str+1,pattern+1);
return false;
}