正则表达式的匹配,一看吓尿了。
写个正则引擎还是挺麻烦的。。
不过仔细一看,原来是精简过的,只有. *这两种(正则好像也就这两种)
主要就是*,匹配0到多个。。。
那直接用递归吧。
class Solution { public: bool isMatch(const char *s, const char *p) { // Note: The Solution object is instantiated only once and is reused by each test case. if(*p == '\0') return *s == '\0'; if(*(p + 1) != '*'){ return (*s == *p || (*p == '.' && *s != '\0')) && isMatch(s+1 , p+1); }else{ while(*p == *s || (*p == '.' && *s != '\0')){ if(isMatch(s , p+2)) return true; //match 1,2,3,4....n s++; } return isMatch(s , p+2); //match 0 } } };
by 1957
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步