站在巨人的肩膀上

class Solution {
public:
bool match(char* str, char* pattern)
{
if(*str == '\0' && *pattern == '\0') return true; //刚好结束
if(*str != '\0' && *pattern == '\0') return false;//模板用完
if(*(pattern+1) != '*')//不能重复0-n次
{
if(*str == *pattern || (*str != '\0' && *pattern == '.'))//相同或者模板含有任意符号
return match(str+1,pattern+1);
else//不相同
return false;
}
else
{
if(*str == *pattern || (*str != '\0' && *pattern == '.'))//相同或者模板含有任意符号
return match(str+1,pattern+2) || match(str+1,pattern) || match(str,pattern+2);//第一个match表示 *只算作一个字符 第二个match表示 *算作多个字符 第三个match表示 尽管当前字符匹配 但*仍不算作字符(即为0)是要继续忽略的
else
return match(str,pattern+2);//不相同,使用0次
}
}
};
京公网安备 11010502036488号