题目链接 10. 正则表达式匹配
程序代码
c++
int sr,pr;
class Solution {
public:
bool isMatch( string &s, string &p) {
sr=s.size();pr=p.size();
return doMatch(s, 0, p, 0);
}
bool doMatch( string &s, int sl, string &p, int pl){
if (pl >= pr) return sl >= sr;
bool flag = sl < sr && (s[sl] == p[pl] || p[pl] == '.');
if(pl + 1 < pr && p[pl + 1] == '*'){
return doMatch(s, sl, p, pl + 2) || (flag && doMatch(s, sl + 1, p, pl));
}
else {
return flag && doMatch(s, sl + 1, p, pl + 1);
}
}
};
参考博客
不大明白为什么在传递参数的时候同样要传址,就是写上&,不写这个就会超时,很无奈。

本文深入探讨了正则表达式匹配算法的实现细节,使用C++代码演示了递归方法解决正则表达式匹配问题的过程。文章重点讲解了如何处理特殊字符'*'的匹配逻辑,以及字符串和正则表达式传递参数时需要注意的问题。
468

被折叠的 条评论
为什么被折叠?



