LeetCode OJ Regular Expression Matching
来源:互联网 发布:最大公约数的算法 编辑:程序博客网 时间:2024/06/06 13:15
Implement regular expression matching with support for '.'
and '*'
.
'.' 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
正则表达式...当然这题算正则表达式中简单的了。
看了discuss才会做,难点在于'*',由于有'*'的存在,s中可能有多个值会被p中的'*'组合代替,但具体s中多长被'*'组合代替了是不得而知的,只能一个长度一个长度试,因此用了递归。
class Solution {public: bool isMatch(const char *s, const char *p) { if (*p == '\0') return *s == '\0'; // 注意必须要刚好匹配完 if (*(p + 1) == '*') { while (*s != '\0' && (*s == *p || *p == '.')) { // 如果是这种情况,p中两个字符就能代替s中很多字符(当然也有可能一个都不代替) if (isMatch(s, p + 2)) return true; // 那么s中可以用p中两个字符代替的字符就不用管了,只用管s中被代替之后的 s++; } return isMatch(s, p + 2); } else { if (*s != '\0' && (*s == *p || *p == '.')) return isMatch(s + 1, p + 1); // 如果没有'*',就判断是否匹配 else return false; } }};
0 0
- LeetCode OJ:Regular Expression Matching
- LeetCode OJ - Regular Expression Matching
- Leetcode OJ: Regular Expression Matching
- LeetCode OJ Regular Expression Matching
- LeetCode OJ --- Regular Expression Matching
- leetCode OJ 10. Regular Expression Matching
- 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
- [LeetCode] Regular Expression Matching
- poj 1338 Ugly Numbers
- 通过office 自带功能进行批量另存为
- N-Queen
- C# TextBox中只允许输入数字的方法
- vim note(6)--vim的一个较全的介绍(转)
- LeetCode OJ Regular Expression Matching
- Nginx的Web缓存服务
- 对你的你的给你搞的那么多个
- java语言GUI编程之TextField持有对方引用2
- LeetCode OJ Candy
- 路径问题大盘点
- spring使用title2或title3
- LeetCode OJ Scramble String
- LeetCode OJ Find Minimum in Rotated Sorted Array II