leetcode - Wildcard Matching

来源:互联网 发布:阿里云客服报名 编辑:程序博客网 时间:2024/05/16 05:39

Implement wildcard pattern matching with support for '?' and '*'.

'?' 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

class Solution {public:    bool isMatch(const char *s, const char *p) {        const char* star=NULL;        const char* t=s;        while (*s){            if ((*p=='?')||(*p==*s)){s++;p++;continue;}             if (*p=='*'){star=p++; t=s;continue;}             if (star){ p = star+1; s=++t;continue;}             return false;        }        while (*p == '*'){p++;}        return !*p;      }};


0 0