Regular Expression Matching
2015-06-13 23:01
218 查看
Matches any single character.'*' Matches zero or more of the preceding element.The matching should cover theentire 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", "a*")→ trueisMatch("aa", ".*") → trueisMatch("ab", ".*") → trueisMatch("aab", "c*a*b") → truea*:匹配0个或多个a;首先判断某字符后是否是“*”,若不是“*”,则直接判断字符是否相等;若是“*”,则循环递归判断是否相等;
</pre><pre name="code" class="cpp">class Solution {public:bool isMatch1(string s,string p,int i,int j){int s_len = s.length();int p_len = p.length();int k = 0;if(i == s_len && j == p_len)return true;if(j > p_len || i> s_len)return false;if(p[j+1] != '*' && j+1 < p_len || j+1 == p_len){if(s[i] == p[j] && i<s_len || p[j] == '.' && i<s_len)return isMatch1(s,p,i+1,j+1);elsereturn false;}else{while(s[i] == p[j] && i<s_len || p[j] == '.' && i<s_len){if(isMatch1(s,p,i,j+2)){return true;}i++;}return isMatch1(s,p,i,j+2);}}bool isMatch(string s, string p) {return isMatch1(s,p,0,0);}};
相关文章推荐
- Regular Expression Matching
- ubuntu 新建用户后 不能使用TAB键、上下键,命令行不显示当前路径的解决
- 一个菜鸟对 java 类和对象的理解
- 再转JavaScript的原型
- ubuntu 新建用户后 不能使用TAB键、上下键,命令行不显示当前路径的解决
- 导航控制器
- 解决从光标处插入图片光标消失的问题
- R语言-05-RJava的安装
- 2015-06-13
- 【ObjectC】oc中的内存分配
- java写socket请求
- Html5+css3+angularjs+jquery+webAPi 开发手机web(一)
- 黑马程序员---2015.6.13java基础笔记---构造代码块--this--static函数
- MongoDB安装及使用
- 关于Slidingmenu_master开源项目的使用方法详解
- 几种最常见的广域网
- 释放自我。回归本性。要成功。
- memcached 客户端总结
- R语言-04-Rserve安装与配置
- 深度剖析malloc、free和new、delete