【LeetCode】Wildcard Matching && Regular Expression Matching

来源:互联网 发布:金融行业的网络推广 编辑:程序博客网 时间:2024/05/29 18:54

参考链接

http://blog.csdn.net/doc_sgl/article/details/12721187


题目描述

'?' Matches any single character.'*' Matches any sequence of characters (including the empty sequence).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", "*") → trueisMatch("aa", "a*") → trueisMatch("ab", "?*") → trueisMatch("aab", "c*a*b") → false

题目分析


总结


代码示例


bool isMatch(const char *s, const char *p) {        // Start typing your C/C++ solution below        // DO NOT write int main() function                 const char* star=NULL;        const char* ss=s;         while (*s){            if ((*p=='?')||(*p==*s)){s++;p++;continue;}            if (*p=='*'){star=p++; ss=s;continue;}            if (star){ p = star+1; s=++ss;continue;}            return false;        }        while (*p=='*'){p++;}        return !*p;    }



'.' 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) {    //assert(s && p);    if (*p == '\0') return *s == '\0';    // next char is not '*': must match current character    if (*(p+1) != '*') {        assert(*p != '*');        return ((*p == *s) || (*p == '.' && *s != '\0')) && isMatch(s+1, p+1);    }    // next char is '*'    while ((*p == *s) || (*p == '.' && *s != '\0')) {        if (isMatch(s, p+2)) return true;        s++;    }    return isMatch(s, p+2);}};








推荐学习C++的资料

C++标准函数库
http://download.csdn.net/detail/chinasnowwolf/7108919

0 0
原创粉丝点击