Regular Expression Matching
2014-06-11 11:22
162 查看
class Solution { public: bool isMatch(const char *s, const char *p) { return match(s, 0, p, 0, 0); } bool match(const char*s, int i, const char* p, int j, char lastChar){ if(i>=strlen(s) && j>=strlen(p)) return true; if(lastChar!=0){ if(i>strlen(s)) //no need go deeper return false; bool b1 = match(s, i, p, j, 0); bool b2 = 0; if(lastChar == s[i] || lastChar=='.'){ b2 = match(s, i+1, p, j, lastChar); } return b1||b2; } if(j+1<strlen(p) && p[j+1]=='*'){ char c = p[j]; j+=2; while(j<strlen(p) && p[j]==c && j+1<strlen(p) && p[j+1]=='*') //a*a*a*a* j+=2; return match(s, i, p, j, c); } if(j>=strlen(p) || i>=strlen(s)) //after check c* return false; if(s[i] == p[j] || p[j]=='.') return match(s, i+1, p, j+1, lastChar); else return false; } };
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") → false isMatch("aa","aa") → true isMatch("aaa","aa") → false isMatch("aa", "a*") → true isMatch("aa", ".*") → true isMatch("ab", ".*") → true isMatch("aab", "c*a*b") → true
相关文章推荐
- Regular Expression Matching
- LeetCode题解-10-Regular Expression Matching
- Leetcode(9) - Regular Expression Matching
- 0010_Regular Expression Matching
- 4.21 leetcode -21 regular-expression-matching
- leetcode 10 Regular Expression Matching(简单正则表达式匹配)
- LeetCode Regular Expression Matching
- Regular Expression Matching
- leetcode:Regular Expression Matching
- Regular Expression Matching
- Insert Interval & *Regular Expression Matching & Binary Tree Maximum Path Sum
- Regular Expression Matching
- leetcode-Regular Expression Matching
- Regular Expression Matching
- Regular Expression Matching
- LeetCode 10:《Regular Expression Matching》
- leetcode problem 10 Regular Expression Matching(动态规划)
- Regular Expression Matching Leetcode Java
- 【leetcode】 Regular Expression Matching
- leetcode 10 -- Regular Expression Matching