[leetcode] 44. Wildcard Matching 解题报告
来源:互联网 发布:数据库实例名是什么 编辑:程序博客网 时间:2024/06/03 17:02
题目链接: https://leetcode.com/problems/wildcard-matching/
Implement wildcard pattern matching with support for '?'
and '*'
.
'?' Matches any single character.'*' Matches any sequence of characters (including the empty sequence).The matching should cover the entire input string (not partial).The function prototype should be:bool isMatch(const char *s, const char *p)Some examples:isMatch("aa","a") → falseisMatch("aa","aa") → trueisMatch("aaa","aa") → falseisMatch("aa", "*") → trueisMatch("aa", "a*") → trueisMatch("ab", "?*") → trueisMatch("aab", "c*a*b") → false
思路: 有两种特殊字符, '?'代表匹配一个任意字符, 这个比较好处理. '*'匹配任意多个字符, 这个需要考虑匹配多个字符. 因此我们可以记下最后出现'*'的位置, 这样当后面位置不匹配的时候再回到这里将不匹配的字符用'*'来匹配. 这样最后再判断是否p指针停留的位置到最后都是*, 如果是的话则可以匹配, 否则不可以匹配. 一个例子如: s = "aa", p = "aa****".
代码如下:
class Solution {public: bool isMatch(string s, string p) { int preS=-1, preP=-1, i=0, j=0, len1=s.size(), len2=p.size(); while(i < len1) { if(s[i]==p[j] || p[j]=='?') i++, j++; else if(p[j]=='*') preS=i+1, preP = j++; else if(preP==-1) return false; else i = preS, j = preP; } while(p[j]=='*') j++; return i==len1&&j==len2; }};参考: https://leetcode.com/discuss/49254/fastest-non-dp-solution-with-o-1-space
0 0
- [leetcode] 44. Wildcard Matching 解题报告
- [Leetcode] 44. Wildcard Matching 解题报告
- Leetcode #44. Wildcard Matching 通配符匹配 解题报告
- LeetCode --- 44. Wildcard Matching
- [Leetcode] 44. Wildcard Matching
- Leetcode 44. Wildcard Matching
- leetcode 44. Wildcard Matching
- Leetcode 44. Wildcard Matching
- Leetcode:44. Wildcard Matching
- LeetCode 44. Wildcard Matching
- leetcode.44. Wildcard Matching
- LeetCode 44. Wildcard Matching
- Leetcode-44. Wildcard Matching
- [LeetCode] 44. Wildcard Matching
- [leetcode] 44. Wildcard Matching
- [LeetCode]--44. Wildcard Matching
- LeetCode 44. Wildcard Matching
- leetcode 44. Wildcard Matching
- 猫脸映射中 数组引用传递的例子
- 今天漫展,好想放假。但是这个图做不好我没心思玩
- Android多国语言的value文件夹命名方式
- Session原理和Tomcat实现分析
- Keil仿真调试
- [leetcode] 44. Wildcard Matching 解题报告
- 结构体---职工信息结构体(oj)
- easyui tree文本单击事件切换展开/折叠节点的状态
- javaEE SSH框架 qq第三方登录及用户绑定
- ssm框架搭建二----环境搭建
- 全球最低功耗蓝牙单芯片DA14580的硬件架构和低功耗
- 轮播图系列教程(四)自动切换,定时器应用——和派孔明
- 第六周项目一 分数类的雏形
- Git常用命令