• 题目:给定一个字符串 (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++】相关推荐

  1. 【算法】Regular Expression Matching 正则匹配

    [算法]Regular Expression Matching 正则匹配 题目 解题思路 代码实现 题目 Given an input string ( s ) and a pattern ( p ) ...

  2. LeetCode Regular Expression Matching(.和*通配符匹配)

    给出text和pattern,pattern中可以使用通配符.和*,.表示匹配任意字符,*表示匹配上一个字符 从text和pattern的第一个字符开始做匹配 1.第一个字符匹配成功,要么第一个字符相 ...

  3. LeetCode Regular Expression Matching

    '.' Matches any single character. '*' Matches zero or more of the preceding element. The matching sh ...

  4. 【重点 递归 动态规划 正则表达式匹配】LeetCode 10. Regular Expression Matching

    LeetCode 10. Regular Expression Matching 本博客参考:http://www.cnblogs.com/grandyang/p/4461713.html 详细解析见 ...

  5. leetcode 10 Regular Expression Matching

    题目连接 https://leetcode.com/problems/regular-expression-matching/ Regular Expression Matching Descript ...

  6. 【LeetCode】10. Regular Expression Matching

    题目: Implement regular expression matching with support for '.' and '*'. '.' Matches any single chara ...

  7. 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] ...

  8. Leetcode Q10: Regular Expression Matching

    题目10: (该题目拿到手没什么特别好的思路,从网上看的别人的解法,然后写了下自己的理解,需要常回顾) Implement regular expression matching with suppo ...

  9. Regular Expression Matching

    正则匹配 Regular Expression Matching Implement regular expression matching with support for '.' and '*'. ...

  10. Q10 Regular Expression Matching

    Given an input string (s) and a pattern §, implement regular expression matching with support for '. ...

最新文章

  1. Clumpify:能使 Fastq 压缩文件再缩小 30% 并加速后续分析流程
  2. SNF快速开发平台MVC-EasyQuery-拖拽生成SQL脚本
  3. HTML--- 创建一个登录页面(HTML,CSS)
  4. 语句作用_3分钟短文:Laravel模型作用域,为你“节省”更多代码
  5. 谷歌(Google)是怎样对待离世的Google员工的?
  6. 安卓androidstudio访问本地接口_安卓开发之数据存储在本地的四种方式
  7. Python学习笔记——算术操作符和优先级问题
  8. 【MYSQL快速入门】牛客网:多表查询
  9. a7100换电池_如何评价三星galaxy A7100(2016版)?
  10. 生活记录:给枯燥的心灵浇浇水
  11. Conmi的正确答案——米家第一个ReactNative程序开发记录
  12. 一款产品经理很好用的产品原型Axure配合软件--墨刀,将产品原型Axure,添加到墨刀,可以/预览/设计/编辑/共享/协同设计
  13. 软件开发中的CI、CD、CD概念
  14. 爱思助手(i4助手) v5.08 官方版​
  15. SAP中采购订单交货己完成相关逻辑和控制原理分析
  16. 计量经济学-简单的一元线性回归模型之一
  17. arduino学习笔记五
  18. TFT供电电路(VCOM/VGL/VGH/AVDD)设计原理
  19. 网教9. 一夜发白《千字文》
  20. 盘龙里那个鸿蒙,盘龙里那个位面守护者霍丹的家族为什么要杀绝四大...-卓优商学院问答...

热门文章

  1. Spring-Bean配置-使用外部属性文件(转)
  2. Salesforce Ventures为云初创公司Vlocity注资5000万美元
  3. FFmpeg 在ubuntu 中编译出so
  4. Office groove系统的术语
  5. STM32CubeMX使用(四)之DMA方式使用ADC
  6. vue入门学习篇——父子组件通信
  7. libfaac个个参数说明
  8. jquery快速入门(二)
  9. python 2.7.9 安装beautifulsoup4
  10. 证券期货信息安全等级保护测评