Leetcode 之Regular Expression Matching(31)
2024-08-31 10:33:39
正则表达式的匹配,还是挺难的。可根据下一个字符是不是*分为两种情况处理,需要考虑多种情况。
bool isMatch(const char *s, const char *p)
{
if (*p == '\0')return *s == '\0'; //如果下一个不是*(*可表示前一个字符的数量)
//要么当前字符匹配,要么是.,不可跳过
if (*(p + ) != '*')
{
if (*s == *p || (*p == '.' && *s != '\0'))
return isMatch(s + , p + );
else
return false;
}
else
{
//如果是*,则当前字符匹配|| 有一个为.
//因为后面是*,即使不完全匹配也没关系,跳过即可
while (*p == *s || (*p == '.' && *s != '\0'))
{
if (isMatch(s, p + ))
return true;
s++;
}
return isMatch(s, p + );
}
}
最新文章
- Android 面试题--Activity
- IOS第五天(1:取消按钮的监听和设置代理textField字数限制)
- Yocto 包管理 apt-get
- oracle查询某个用户下的所有视图
- BZOJ1978: [BeiJing2010]取数游戏 game
- smarty的学习计划(1)
- 【Luogu1291】百事世界杯之旅(动态规划,数学期望)
- C# 曲线上的点(一) 获取指定横坐标对应的纵坐标值
- selenium chrome在新标签页打开链接的方法
- Shell命令-文件及内容处理之sort、uniq
- ubantu搭建oj——第一天(6.11)
- springcloud-知识点总结(三):Hystrix &; Dashboard &; turbine &; Zuul &; SpringCloud Config
- ADOBE ACROBAT 去除Explorer右键菜单
- Linux——CentOS7安装gcc编译器详解
- IIS 反向代理设置
- centos下SVN搭建多个库文件总汇
- 吴裕雄 python 机器学习-NBYS(1)
- 企业项目开发--分布式缓存memcached(3)
- System V 共享内存区
- [CF983D]Arkady and Rectangles