【leetcode 44】Wildcard Matching
来源:互联网 发布:薛之谦的回应 知乎 编辑:程序博客网 时间:2024/05/17 02:07
/**************************************************************************************************************************************************************************
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
***************************************************************************************************************************************************************************/
思路:
1,主要是针对 *p=='*' 情况下的处理,当 p 每次遇到 '*' 的时候都往后跳过,同时记住 s 此时的位置。
2,记录 p 在 '*'之后的第一个元素,将 s 往后移动,找到此时的 *s==*p 进行递归。注意:*p=='?' 和 *s 的任何元素匹配。
/*******************************************************************
代码:
class Solution{
public:
bool isMatch(string s, string p){
return isMatch(s.c_str(), p.c_str());
}
private:
bool isMatch(const char *s, const char *p){
if (*p == '\0') return *s == '\0';
if (*p == '*'){
while (*p == '*') ++p;
if (*p == '\0')
return true;
while (*s != *p){
if (*s == '\0') return false;
else
++s;
}
isMatch(s, p);
}
else if (*p == '?' || *p == *s)
isMatch(s + 1, p + 1);
else
return false;
}
};
- LeetCode(44) Wildcard Matching
- [leetcode] 44 Wildcard Matching
- LeetCode 44:Wildcard Matching
- leetcode 44: Wildcard Matching
- leetcode 44: Wildcard Matching
- [leetcode 44] Wildcard Matching
- leetcode 44:Wildcard Matching
- LeetCode 44 - Wildcard Matching
- leetcode 44 Wildcard Matching
- LeetCode(44) Wildcard Matching
- LeetCode 44 Wildcard Matching
- Leetcode (44) Wildcard Matching
- leetcode(44) - Wildcard Matching
- 【leetcode 44】Wildcard Matching
- LeetCode 44 Wildcard Matching
- Leetcode 44:Wildcard Matching
- **leetcode 44 Wildcard Matching
- [leetcode-44]Wildcard Matching(c)
- pat 甲1121. Damn Single (水题)
- 用C++操作Android Log API输出日志
- 配置hive
- 剑指offer 对称的二叉树
- 剑指offer--- 反转链表
- 【leetcode 44】Wildcard Matching
- JAVA面试题解惑系列(四)——final、finally和finalize的区别
- 机房那些事儿---小知识
- 最长递增子序列(导弹拦截)
- 01背包模版
- Web开发之CSS样式基本知识
- 【软件测试】用jmeter录制脚本
- 练习系统 实验二 不吉利日期
- Java中的类和对象的理解