【LeetCode】Wildcard Matching && Regular Expression Matching
来源:互联网 发布:金融行业的网络推广 编辑:程序博客网 时间:2024/05/29 18:54
参考链接
http://blog.csdn.net/doc_sgl/article/details/12721187题目描述
'?' 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
题目分析
总结
代码示例
bool isMatch(const char *s, const char *p) { // Start typing your C/C++ solution below // DO NOT write int main() function const char* star=NULL; const char* ss=s; while (*s){ if ((*p=='?')||(*p==*s)){s++;p++;continue;} if (*p=='*'){star=p++; ss=s;continue;} if (star){ p = star+1; s=++ss;continue;} return false; } while (*p=='*'){p++;} return !*p; }
'.' Matches any single character.'*' Matches zero or more of the preceding element.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", "a*") → trueisMatch("aa", ".*") → trueisMatch("ab", ".*") → trueisMatch("aab", "c*a*b") → true
class Solution {public: bool isMatch(const char *s, const char *p) { //assert(s && p); if (*p == '\0') return *s == '\0'; // next char is not '*': must match current character if (*(p+1) != '*') { assert(*p != '*'); return ((*p == *s) || (*p == '.' && *s != '\0')) && isMatch(s+1, p+1); } // next char is '*' while ((*p == *s) || (*p == '.' && *s != '\0')) { if (isMatch(s, p+2)) return true; s++; } return isMatch(s, p+2);}};
推荐学习C++的资料
C++标准函数库
http://download.csdn.net/detail/chinasnowwolf/7108919
0 0
- [LeetCode]Regular Expression Matching、Wildcard Matching
- 【LeetCode】Wildcard Matching && Regular Expression Matching
- 【LeetCode笔记】Wildcard Matching 和 Regular Expression Matching
- leetcode 10 Regular Expression Matching & 44 Wildcard Matching
- leetcode 10|44. Regular Expression Matching 44. Wildcard Matching
- 10. Regular Expression Matching 44. Wildcard Matching
- Wildcard Matching & Regular Expression Matching & KMP
- LeetCode: Regular Expression Matching
- LeetCode: Regular Expression Matching
- leetcode Regular Expression Matching
- [Leetcode] Regular Expression Matching
- [LeetCode]Regular Expression Matching
- LeetCode-Regular Expression Matching
- Regular Expression Matching LeetCode
- LeetCode | Regular Expression Matching
- LeetCode: Regular Expression Matching
- Leetcode: Regular Expression Matching
- [LeetCode] Regular Expression matching
- 女汉子
- 动态规划总结
- ASPxGridView提示不支持所指定的方法的解决方法
- 12. Applet小程序 java
- javaEE servlet jsp 验证码
- 【LeetCode】Wildcard Matching && Regular Expression Matching
- 安卓四大组件之--广播接受者
- 多继承sizeof的求解
- android 地图开发
- shell学习3:文本处理工具
- 好-纹理和材质区别总结
- C++中虚函数和普通函数的区别
- cocos2d初级篇笔记三
- 破解mysql root密码