正则表达式匹配
正则表达式匹配
http://www.nowcoder.com/questionTerminal/45327ae22b7b413ea21df13ee7d6429c
站在巨人的肩膀上
![图片说明](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次 } } };