站在巨人的肩膀上
![图片说明](https://uploadfiles.nowcoder.com/images/20200527/327658856_1590592522966_FBCB11D91EB64998821BAAE3EFADFAC0 "图片标题")

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次
        }
    }
};