LeetCode | Regular Expression Matching
来源:互联网 发布:淘宝 外网代理 编辑:程序博客网 时间:2024/04/28 20:55
题目:
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
思路:
递归的方式完成。考虑到*的情况,每次读入两位数值。代码:
class Solution {public: bool isMatch(const char *s, const char *p) { // Start typing your C/C++ solution below // DO NOT write int main() function return canMatch(s, 0, p, 0); } bool canMatch(const char *s, int i, const char *p, int j) { if(s[i] == '\0' && p[j] == '\0') { return true; } else if(s[i] == '\0') { if(p[j+1] == '*') { return canMatch(s, i, p, j+2); } else { return false; } } else if(p[j] == '\0') { return false; } if(p[j+1] == '*') { if(s[i] == p[j] || p[j] == '.') { return canMatch(s, i+1, p, j) || canMatch(s, i, p, j+2); } else { return canMatch(s, i, p, j+2); } } else { if(s[i] == p[j]) { return canMatch(s, i+1, p, j+1); } else if(p[j] == '.') { return canMatch(s, i+1, p, j+1); } else { return false; } } }};
- 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
- LeetCode Regular Expression Matching
- leetcode Regular Expression Matching
- leetcode: Regular Expression Matching
- LeetCode Regular Expression Matching
- Leetcode: Regular Expression Matching
- leetcode:Regular Expression Matching
- 【黑马程序员】关于线程的学习
- MacBook Pro 装mac os 和 windows 8 双系统,在window 环境下时间自动改变,+ 8 小时
- Android系统移植与调试之------->如何修改Android自带的apk出现一圈圈类似鸡蛋的花纹
- 基于pagelet的前端框架代码
- linux 安装nfs服务
- LeetCode | Regular Expression Matching
- html中异步上传文件实现
- hdu 1466 计算直线的交点数
- ALTRUN 工具使用笔记
- C#反射相关
- mapReduce简单示例
- android备忘录系列(一)之通过Service添加背景音乐
- Hash 函数的现状,2012
- Python写爬虫抓站的一些技巧