剑指offer(49)-正则表达式匹配
2016-07-03 20:09
302 查看
题目描述
请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配。代码
class Solution { public: bool match(char* str, char* pattern) { if (str == NULL || pattern == NULL) { return false; } return matchCore(str, pattern); } bool matchCore(char* str, char* pattern) { if (*str == '\0' && *pattern == '\0') { return true; } if (*str != '\0' && *pattern == '\0') { return false; } if (*(pattern + 1) == '*') { if (*pattern == *str || (*pattern == '.' && *str != '\0')) { // move on the next state return matchCore(str+1, pattern+1) // state on the current state || matchCore(str+1, pattern) // ignore a '*' || matchCore(str, pattern+2); } else{ // ignore a '*' return matchCore(str, pattern+2); } } if (*str == *pattern || (*pattern == '.' && *str != '\0')) { return matchCore(str+1, pattern+1); } return false; } };
相关文章推荐
- msql 正则表达式
- 正则表达式
- Mootools 1.2教程 函数
- autoit InputBox 函数
- Mootools 1.2教程 正则表达式
- 文件遍历排序函数
- 关于C#中排序函数的总结
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- 批处理FINDSTR正则表达式用法实例分析
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua实现split函数
- Lua常用时间函数使用实例
- Lua函数与字符串处理简明总结