LintCode 192. Wildcard Matching (Hard)
LeetCode 44. Wildcard Matching (Hard)

第二次刷还是被这题虐. 其实就是跪在一个地方, 就是关于mustFail的地方.
*p && !*s的时候, 说明s已经被用完了, p还没有被穷尽, 这种情况下要直接退出所有的递归返回false, 因为s都匹配不完p, 那么s+1, s+2...等字符串更不可能匹配p.

class Solution {
private:bool mustFail = false;
public:bool isMatch(const char *s, const char *p) {if (!s || !p) return false;while (*s && *p && *s == *p || *p == '?') {++s;++p;}if (*p == '*') {while (*p == '*') ++p;if (!*p) return true;do {while (*s && !(*s == *p || *p == '?')) ++s;if (isMatch(s, p)) return true;if (mustFail) return false;++s;} while (*s);return false;}if (*p && !*s) {mustFail = true;}return !*s && !*p;}
};

时间复杂度: O(mn)
空间复杂度: O(1)(不考虑递归堆栈开销)

转载于:https://www.cnblogs.com/7z7chn/p/5215455.html

[OJ] Wildcard Matching (Hard)相关推荐

  1. 【LeetCode】44. Wildcard Matching (2 solutions)

    Wildcard Matching Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any ...

  2. [LeetCode] Wildcard Matching 题解

    6. Wildcard Matching 题目 Implement wildcard pattern matching with support for '?' and '*'. '?' Matche ...

  3. [LintCode] Wildcard Matching

    Wildcard Matching Implement wildcard pattern matching with support for '?'and '*'. '?' Matches any s ...

  4. leetcode-44. Wildcard Matching

    题目阐释: 正则匹配字符串,用程序实现 关键理解: 正则匹配,动态规划思想,一个个向后追溯,后面的依赖前面的匹配成功. 正则和待匹配的字符串长度不一,统一到正则字符串的index索引上,每次的字符串i ...

  5. LeetCode - 44. Wildcard Matching

    44. Wildcard Matching Problem's Link --------------------------------------------------------------- ...

  6. 【To Understand! 重点 递归 动态规划 正则表达式匹配】LeetCode 44. Wildcard Matching

    LeetCode 44. Wildcard Matching Solution1:我的答案 递归,时间复杂度是O(2n)O(2n)O(2^n)因为超时未能AC 只是记录一下,以警示后人-- class ...

  7. Wildcard Matching 1

    Wildcard Matching 题解 题目描述 即判断字符串与正则表达式(只支持'?'和'*')是否匹配. '?'匹配任意一个字符,'*'匹配任意一个序列. 如:"abab"与 ...

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

  9. LeetCode: 44. Wildcard Matching

    LeetCode: 44. Wildcard Matching 题目描述 Implement wildcard pattern matching with support for '?' and '* ...

最新文章

  1. HDFS基本概念和特性的详情了解及优缺点
  2. 基于drools_Drools:基于PHREAK堆栈的评估和向后链接
  3. rtmp协议 java_基于rtmp协议的java多线程服务器
  4. 汉诺塔(三) 判断操作是否合法 + 栈(stack)数组
  5. 抽象工厂模式 -- 大话设计模式
  6. 改进的冒泡排序算法一
  7. 怎么理解知行之桥EDI系统的端口?
  8. python提取身份证信息_Python3 简单抓取身份证地址信息
  9. 数字化转型、智能制造、工业软件及其应用案例资源列表
  10. python null类型
  11. 基于微信小程序的智慧党史系统源码【包调试】
  12. Word使用技巧:如何给文档添加手写签名?
  13. 笔记本onenote绘画快捷键_OneNote 超全快捷键
  14. 电脑蓝屏个人解决办法————由程序引起的
  15. html点击按钮动复制推广地址,JavaScript实现点击按钮就复制当前网址
  16. 炎炎夏日送清凉 狠抓实干保工期 西安华南城领导慰问工地一线建筑工人
  17. 穷人和富人的思维方式探析
  18. golang中的rune类型
  19. 祁隆乐凡短视频隔空宣战,和合国际收购祁隆歌曲《借我星光》版权
  20. php 商品图片分享,PHP合成活动商品图片分享海报

热门文章

  1. python image convert_从python运行imagemagick convert(控制台应用程序)
  2. python源码多平台编译_ubuntu编译python源码的坑
  3. 【ubuntu】GPU进程kill后,显存未释放(杀死僵尸进程)
  4. python3(十四)Python 异常处理
  5. visual c++ build tools的安装与使用
  6. 除了工商银行,目前中国还有那些宇宙级别的企业?
  7. Device /dev/ttyUSB0 is locked.解决办法
  8. python中缩进_python编程中的缩进是什么意思
  9. a标签隐藏真实地址_家庭影院布线非常杂乱应该怎么补救?A/V电缆管理的7个技巧...
  10. php导出excel出现乱码,php导出数据到excel出现乱码的解决办法