leetcode-wildcard match
来源:互联网 发布:2017淘宝追加评论期限 编辑:程序博客网 时间:2024/04/29 23:54
递归(Time Limited),便于理解
class Solution {public: bool isMatch(string s, string p) { if (p.empty()) return s.empty();//同空为真 if (p[0]!='*'){ if (s[0]==p[0]||(p[0]=='?'&&!s.empty())) return isMatch(s.substr(1),p.substr(1)); else return false; } else{ if (isMatch(s,p.substr(1))) return true; if (!s.empty()) return isMatch(s.substr(1),p); else return false; } }};
非递归
(借鉴solution置顶算法)
class Solution {public: bool isMatch(string s, string p) {//通配符匹配 int m=s.size(),n=p.size(),index=-1,ss=0,i=0,j=0; bool flag=false; if (p.empty()) return s.empty(); vector<vector<bool>> f(m+1,vector<bool>(n+1,false)); f[0][0]=true; for (i=0,j=0;i<m;){ //cout<<i<<" "<<j<<" "<<index<<endl; switch(p[j]){ case '?': i++;j++; break; case '*'://记录下此时*的位置,便于回溯(index) ss=i;//目标串此时位置 while(p[j]=='*'&&j<n) j++; index=j-1; break; default: //cout<<p[j]<<" "; if (s[i]!=p[j]){ if (index==-1) return false; j=index+1; ss++; i=ss; } else { i++;j++; } break; } } //cout<<j<<endl; while(p[j]=='*'&&j<n) j++; //cout<<j; return j==n; }};
0 0
- leetcode-wildcard match
- [Leetcode 44, Hard] Wildcard match
- LeetCode: Wildcard Matching
- LeetCode : Wildcard Matching
- [LeetCode] Wildcard Matching - Iteratively
- leetcode 83: Wildcard Matching
- [Leetcode] Wildcard Matching
- [LeetCode]Wildcard Matching
- LeetCode-Wildcard Matching
- LeetCode -- Wildcard Matching
- LeetCode | Wildcard Matching
- Leetcode: Wildcard Matching
- Leetcode:Wildcard Matching
- LeetCode题解:Wildcard Matching
- LeetCode Wildcard Matching
- [Leetcode] Wildcard Matching (Java)
- LeetCode OJ:Wildcard Matching
- Leetcode: Wildcard Matching
- java中的进制转化
- 一个经典的PHP文件上传类分享 使用心得
- Android App优化之性能分析工具
- input文本输入框所有用法 文字显示 点击选框编辑 文本框变色 只能输入中文、英文、数字 只读状态 不能黏贴
- Android中图片的读取,修改,显示和保存涉及到的类大致如图所示。
- leetcode-wildcard match
- 设计模式资料
- C语言中有关数据类型的心得
- java ee学习笔记归纳(一)
- AADSTS90093:Calling principal cannot consent due to lack of permissions
- FFMPEG(一) 从V4L2捕获摄像头数据
- python装饰器
- VS 自动添加注释的代码运行时报: 未将对象引用设置到对象实例。
- KMP算法