【Leetcode】【Regular Expression Matching】【正则表达式匹配】【C++】
- 题目:给定一个字符串 (
s
) 和一个字符模式 (p
)。实现支持'.'
和'*'
的正则表达式匹配。'.' 匹配任意单个字符。 '*' 匹配零个或多个前面的元素。
- 说明:
s
可能为空,且只包含从a-z
的小写字母。p
可能为空,且只包含从a-z
的小写字母,以及字符.
和*
。
- 思路:多层递归易超时,需优化
- 代码:
class Solution { public:bool isMatch(string s, string p) {if(s=="" && p=="")return true;else if(p=="" )return false;int len_s=s.size();int len_p=p.size();if(len_p==1){if(len_s==1){if(s[0]==p[0] || p[0]=='.')return true;elsereturn false;}elsereturn false;}if(p[1]!='*'){if(s.size()==0)return false;if(p[0]==s[0] || p[0]=='.'){string s1(s,1);string p1(p,1);return isMatch(s1,p1);}elsereturn false;}else{string s1="";string p1(p,2);if(s!=""){string temp(s,1);s1=temp;}elsereturn isMatch(s,p1);if(p[0]==s[0] || p[0]=='.'){return isMatch(s,p1) || isMatch(s1,p1) || isMatch(s1,p);}elsereturn isMatch(s,p1);}} };
其中,
else{string s1="";string p1(p,2);if(s!=""){string temp(s,1);s1=temp;}elsereturn isMatch(s,p1);if(p[0]==s[0] || p[0]=='.'){return isMatch(s,p1) || isMatch(s1,p1) || isMatch(s1,p);}elsereturn isMatch(s,p1);}
需替换为
else{string s1="";string p1(p,2);if(s!=""){string temp(s,1);s1=temp;}elsereturn isMatch(s,p1);while (!s.empty() && (s[0] == p[0] || p[0] == '.')) {if (isMatch(s, p.substr(2))) return true;s = s.substr(1);}return isMatch(s,p1);}
转载于:https://www.cnblogs.com/dreamer123/p/9170756.html
【Leetcode】【Regular Expression Matching】【正则表达式匹配】【C++】相关推荐
- 【算法】Regular Expression Matching 正则匹配
[算法]Regular Expression Matching 正则匹配 题目 解题思路 代码实现 题目 Given an input string ( s ) and a pattern ( p ) ...
- LeetCode Regular Expression Matching(.和*通配符匹配)
给出text和pattern,pattern中可以使用通配符.和*,.表示匹配任意字符,*表示匹配上一个字符 从text和pattern的第一个字符开始做匹配 1.第一个字符匹配成功,要么第一个字符相 ...
- LeetCode Regular Expression Matching
'.' Matches any single character. '*' Matches zero or more of the preceding element. The matching sh ...
- 【重点 递归 动态规划 正则表达式匹配】LeetCode 10. Regular Expression Matching
LeetCode 10. Regular Expression Matching 本博客参考:http://www.cnblogs.com/grandyang/p/4461713.html 详细解析见 ...
- leetcode 10 Regular Expression Matching
题目连接 https://leetcode.com/problems/regular-expression-matching/ Regular Expression Matching Descript ...
- 【LeetCode】10. Regular Expression Matching
题目: Implement regular expression matching with support for '.' and '*'. '.' Matches any single chara ...
- LeetCode 10. Regular Expression Matching / 44. Wildcard Matching
10. Regular Expression Matching 经典DP题目,比较复杂,需要多复习. dp[i][j] 表示 s 下标0~i,p 下标0~j 是否能够匹配 dp[i-1][j-1] ...
- Leetcode Q10: Regular Expression Matching
题目10: (该题目拿到手没什么特别好的思路,从网上看的别人的解法,然后写了下自己的理解,需要常回顾) Implement regular expression matching with suppo ...
- Regular Expression Matching
正则匹配 Regular Expression Matching Implement regular expression matching with support for '.' and '*'. ...
- Q10 Regular Expression Matching
Given an input string (s) and a pattern §, implement regular expression matching with support for '. ...
最新文章
- Clumpify:能使 Fastq 压缩文件再缩小 30% 并加速后续分析流程
- SNF快速开发平台MVC-EasyQuery-拖拽生成SQL脚本
- HTML--- 创建一个登录页面(HTML,CSS)
- 语句作用_3分钟短文:Laravel模型作用域,为你“节省”更多代码
- 谷歌(Google)是怎样对待离世的Google员工的?
- 安卓androidstudio访问本地接口_安卓开发之数据存储在本地的四种方式
- Python学习笔记——算术操作符和优先级问题
- 【MYSQL快速入门】牛客网:多表查询
- a7100换电池_如何评价三星galaxy A7100(2016版)?
- 生活记录:给枯燥的心灵浇浇水
- Conmi的正确答案——米家第一个ReactNative程序开发记录
- 一款产品经理很好用的产品原型Axure配合软件--墨刀,将产品原型Axure,添加到墨刀,可以/预览/设计/编辑/共享/协同设计
- 软件开发中的CI、CD、CD概念
- 爱思助手(i4助手) v5.08 官方版​
- SAP中采购订单交货己完成相关逻辑和控制原理分析
- 计量经济学-简单的一元线性回归模型之一
- arduino学习笔记五
- TFT供电电路(VCOM/VGL/VGH/AVDD)设计原理
- 网教9. 一夜发白《千字文》
- 盘龙里那个鸿蒙,盘龙里那个位面守护者霍丹的家族为什么要杀绝四大...-卓优商学院问答...