Wildcard Matching_Leetcode_#44

来源:互联网 发布:原生js获取json文件 编辑:程序博客网 时间:2024/04/30 08:44

1 题目
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”) → false
isMatch(“aa”,”aa”) → true
isMatch(“aaa”,”aa”) → false
isMatch(“aa”, “*”) → true
isMatch(“aa”, “a*”) → true
isMatch(“ab”, “?*”) → true
isMatch(“aab”, “c*a*b”) → false

2 解法

bool isMatch(char* s, char* p) {    char* star = NULL;    char* ss = NULL;    while(*s){        if(*s==*p || *p=='?'){            ++s;            ++p;            continue;        }        if(*p=='*'){            ss=s;            star=p++;            continue;        }        if(star){            p=star+1;            s=++ss;            continue;        }        return false;    }    while(*p=='*'){        ++p;    }    return !*p;}
0 0
原创粉丝点击