LeetCode 44:Wildcard Matching

来源:互联网 发布:adobecs6破解补丁 mac 编辑:程序博客网 时间:2024/05/17 05:15

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) {    bool isStar = false;const char* s1, *p1;while(*s && (*p || isStar)){if((*s==*p) || (*p=='?')){s++; p++;}else if(*p == '*'){isStar = true;p++;if(*p=='\0') return true;s1 = s;p1 = p;}else{if(!isStar) return false;p =p1;s = ++s1;}}if(*s=='\0'){while(*p=='*')p++;if(*p=='\0') return true;}return false;    }};


2 0
原创粉丝点击