本文主要是介绍LeetCode 44: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") → 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
题目要求实现模糊匹配,代码如下:
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;}
};
这篇关于LeetCode 44:Wildcard Matching的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!