LeetCode:Regular Expression Matching
来源:互联网 发布:巫师三优化 编辑:程序博客网 时间:2024/06/13 04:22
Regular Expression Matching
Implement regular expression matching with support for '.'
and '*'
.
'.' Matches any single character.'*' Matches zero or more of the preceding element.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", "a*") → trueisMatch("aa", ".*") → trueisMatch("ab", ".*") → trueisMatch("aab", "c*a*b") → true
由于只有“.”和“*”,直接想法很简单,判定下一个是否为“*”,如果不为“*”则判定当前是否为‘.’(或者任意字符),如果下一个为“*”则需对之后从0个到最多个重复的多种情况下判定
,最后判定一下s为空的情况。
class Solution {public:bool isMatch(const char *s, const char *p) { if(*p == '\0')return *s == '\0'; if(*(p+1) != '*') { return (*s == *p || (*p =='.' && *s != '\0')) && isMatch(s+1,p+1); } while(*s == *p || (*p == '.' && *s != '\0')) { if(isMatch(s,p+2))return true; s++; } return isMatch(s,p+2);}};
0 0
- LeetCode: Regular Expression Matching
- LeetCode: Regular Expression Matching
- leetcode Regular Expression Matching
- [Leetcode] Regular Expression Matching
- [LeetCode]Regular Expression Matching
- LeetCode-Regular Expression Matching
- Regular Expression Matching LeetCode
- LeetCode | Regular Expression Matching
- LeetCode: Regular Expression Matching
- Leetcode: Regular Expression Matching
- [LeetCode] Regular Expression matching
- [LeetCode] Regular Expression Matching
- LeetCode Regular Expression Matching
- leetcode Regular Expression Matching
- leetcode: Regular Expression Matching
- LeetCode Regular Expression Matching
- Leetcode: Regular Expression Matching
- leetcode:Regular Expression Matching
- Mongoose源码分析:Intoduction and Installation
- [C] sizeof居然不是函数是运算符
- 用libevent多线程方式实现echo server
- JAVA基础----java中E,T,?的区别?
- Mongoose源码分析:数据结构篇
- LeetCode:Regular Expression Matching
- Java exec jar
- Mongoose源码分析:mongoose的工作模型
- Mongoose源码剖析:核心处理模块
- TCP&UDP差异对比
- 7 如何检查一个数字是不是2的乘方
- Linux如何编译安装源码包软件
- [C] printf()和scanf()的*修饰符——《C Primer Plus》
- spring容器的事件机制