[OJ] Wildcard Matching (Hard)
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)相关推荐
- 【LeetCode】44. Wildcard Matching (2 solutions)
Wildcard Matching Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any ...
- [LeetCode] Wildcard Matching 题解
6. Wildcard Matching 题目 Implement wildcard pattern matching with support for '?' and '*'. '?' Matche ...
- [LintCode] Wildcard Matching
Wildcard Matching Implement wildcard pattern matching with support for '?'and '*'. '?' Matches any s ...
- leetcode-44. Wildcard Matching
题目阐释: 正则匹配字符串,用程序实现 关键理解: 正则匹配,动态规划思想,一个个向后追溯,后面的依赖前面的匹配成功. 正则和待匹配的字符串长度不一,统一到正则字符串的index索引上,每次的字符串i ...
- LeetCode - 44. Wildcard Matching
44. Wildcard Matching Problem's Link --------------------------------------------------------------- ...
- 【To Understand! 重点 递归 动态规划 正则表达式匹配】LeetCode 44. Wildcard Matching
LeetCode 44. Wildcard Matching Solution1:我的答案 递归,时间复杂度是O(2n)O(2n)O(2^n)因为超时未能AC 只是记录一下,以警示后人-- class ...
- Wildcard Matching 1
Wildcard Matching 题解 题目描述 即判断字符串与正则表达式(只支持'?'和'*')是否匹配. '?'匹配任意一个字符,'*'匹配任意一个序列. 如:"abab"与 ...
- 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: 44. Wildcard Matching
LeetCode: 44. Wildcard Matching 题目描述 Implement wildcard pattern matching with support for '?' and '* ...
最新文章
- HDFS基本概念和特性的详情了解及优缺点
- 基于drools_Drools:基于PHREAK堆栈的评估和向后链接
- rtmp协议 java_基于rtmp协议的java多线程服务器
- 汉诺塔(三) 判断操作是否合法 + 栈(stack)数组
- 抽象工厂模式 -- 大话设计模式
- 改进的冒泡排序算法一
- 怎么理解知行之桥EDI系统的端口?
- python提取身份证信息_Python3 简单抓取身份证地址信息
- 数字化转型、智能制造、工业软件及其应用案例资源列表
- python null类型
- 基于微信小程序的智慧党史系统源码【包调试】
- Word使用技巧:如何给文档添加手写签名?
- 笔记本onenote绘画快捷键_OneNote 超全快捷键
- 电脑蓝屏个人解决办法————由程序引起的
- html点击按钮动复制推广地址,JavaScript实现点击按钮就复制当前网址
- 炎炎夏日送清凉 狠抓实干保工期 西安华南城领导慰问工地一线建筑工人
- 穷人和富人的思维方式探析
- golang中的rune类型
- 祁隆乐凡短视频隔空宣战,和合国际收购祁隆歌曲《借我星光》版权
- php 商品图片分享,PHP合成活动商品图片分享海报
热门文章
- python image convert_从python运行imagemagick convert(控制台应用程序)
- python源码多平台编译_ubuntu编译python源码的坑
- 【ubuntu】GPU进程kill后,显存未释放(杀死僵尸进程)
- python3(十四)Python 异常处理
- visual c++ build tools的安装与使用
- 除了工商银行,目前中国还有那些宇宙级别的企业?
- Device /dev/ttyUSB0 is locked.解决办法
- python中缩进_python编程中的缩进是什么意思
- a标签隐藏真实地址_家庭影院布线非常杂乱应该怎么补救?A/V电缆管理的7个技巧...
- php导出excel出现乱码,php导出数据到excel出现乱码的解决办法