题目描述
请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配
代码:
class Solution {
public:
bool match(char* s, char* p)
{
if(*s=='\0'&&*p=='\0') return 1;
if(*p=='\0') return 0;
if(*(p+1)!='*')
{
if(*s!='\0'&&(*s==*p||*p=='.')) return match(s+1, p+1);
return 0;
}
else
{
int tmp=0;
if(*s!='\0'&&(*s==*p||*p=='.'))
tmp=match(s+1, p);
return tmp|match(s, p+2);
}
}
};