[string]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") → 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
class Solution {
public:
    bool isMatch(string& s,int sSize,int startS,string& p,int pSize,int startP)
    {
        if(startS==sSize){
            while(startP<pSize){
                if(p[startP]!=‘*‘ && (startP+1>=pSize || p[startP+1]!=‘*‘)){
                    break;
                }
                startP++;
            }
            return startP==pSize? true:false;
        }
        if(startP+1<pSize && p[startP+1]==‘*‘){
            int j=startP+1;
            while(j<pSize && p[j]==‘*‘) j++;
            if(isMatch(s,sSize,startS,p,pSize,j)) return true;
            while(startS<sSize && (s[startS]==p[startP] || p[startP]==‘.‘)){
                if(isMatch(s,sSize,++startS,p,pSize,j)) return true;
            }
            return false;
        }
        if(p[startP]==‘.‘||p[startP]==s[startS]){
            return isMatch(s,sSize,startS+1,p,pSize,startP+1);
        }
        return false;
    }
    bool isMatch(string s, string p) {
        return isMatch(s,s.size(),0,p,p.size(),0);
    }
};
/*
"aaaaddcbbeefggh"
"a*ddcb*eefc*ggh**"
*/

通配符匹配:http://www.cnblogs.com/zengzy/p/5019079.html

时间: 2024-10-08 00:17:38

[string]Regular Expression Matching的相关文章

9.Regular Expression Matching (String; DFS)

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

LeetCode 10. Regular Expression Matching

https://leetcode.com/problems/regular-expression-matching/description/ Implement regular expression matching with support for '.' and '*'. '.' Matches any single character. '*' Matches zero or more of the preceding element. The matching should cover

Java [leetcode 10] Regular Expression Matching

问题描述: Implement regular expression matching with support for '.' and '*'. '.' Matches any single character. '*' Matches zero or more of the preceding element. http://i.cnblogs.com/EditPosts.aspx?opt=1 The matching should cover the entire input string

【leetcode】Regular Expression Matching (hard) ★

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

[LeetCode] 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

[LeetCode] 10. 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

LeetCode10 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 shoul

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

Java for LeetCode 010 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