LeetCode::Wildcard Matching

来源:互联网 发布:java字符串方法 编辑:程序博客网 时间:2024/05/14 19:28

https://oj.leetcode.com/problems/wildcard-matching/


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* stemp = nullptr;        const char* asterisk = nullptr;        while(*s != '\0') {            if (*p == *s || *p == '?') {                s++;                p++;                continue;            }            if (*p == '*') {                stemp = s;                asterisk = p;                p++;                continue;            }            if (asterisk != nullptr) {                s = ++stemp;                p = asterisk + 1;                continue;            }            return false;        }        while (*p == '*') {            p++;        }        return *p == '\0';    }};



0 0