leetcode 10. Regular Expression Matching
2016-05-18 16:58
218 查看
这道题非递归会很复杂,我使用了递归的方法来解决这个问题。
bool isMatch(char* s, char* p) { int len_s,len_p; int i; len_s=strlen(s); len_p=strlen(p); if(s[0]=='\0'&&p[0]=='\0') return true; if(p[0]!='.'&&p[1]!='*') { if(s[0]==p[0]) return isMatch(s+1,p+1); //单字符匹配 else return false; } if(p[0]!='.'&&p[1]=='*') { for(i=-1;i<len_s;i++) { if(i==-1) //0个p[0] { if(isMatch(s,p+2)) return true; else continue; } if(s[i]==p[0]) { if(isMatch(s+i+1,p+2)) return true; } else return isMatch(s+i,p+2); } } if(p[0]=='.'&&p[1]!='*') { if(s[0]=='\0') return false; return isMatch(s+1,p+1); } if(p[0]=='.'&&p[1]=='*') { for(i=-1;i<len_s;i++) { if(i==-1) //0个 { if(isMatch(s,p+2)) return true; else continue; } if(isMatch(s+i+1,p+2)) return true; } return false; } return false; }
相关文章推荐
- ASP.Net Core MVC6 RC2 启动过程分析[偏源码分析]
- ip更换
- redis命中率计算
- mybatis mapper接口要不要抛出异常
- XmlPullParser
- MATLAB句柄图形对象的创建函数与函数描述
- 剑指Offer——判断平衡二叉树
- 在windows编译MariaDB
- Shell中调用、引用、包含另一个脚本文件的三种方法
- sdut 3253 Game! 博弈
- windows server 2008 R2服务搭建
- MXE (M cross environment) Requirements
- 《Spring技术内幕》学习笔记1——IoC容器体系结构
- SQL_Server_2005_函数大全
- Linux 目录结构
- tp框架总结(二)
- 转:Maven常用命令
- jQuery EasyUI datagrid 无记录时,增加"暂无数据"提示
- [Android] 提高ORMLite插入大量数据效率的解决方案
- 这首王维的古诗该如何解析?