[leetCode] Regular Expression Matching

来源:互联网 发布:获取端口号 编辑:程序博客网 时间:2024/05/29 08:16

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
class Solution {public:    bool isMatch(const char *s, const char *p) {        if(s == NULL || p == NULL) return false;        if(*p == '\0') return *s == '\0';        if(*(p + 1) == '*'){            while(*s != '\0' && (*p == *s || *p == '.')){                if(isMatch(s, p + 2))                    return true;                s ++;            }            return isMatch(s, p + 2);        }else{            if(*s != '\0' && (*p == *s || *p == '.'))                return isMatch(s + 1,p + 1);            else                return false;        }    }};


0 0