LeetCode正则表达式-Regular Expression Matching
来源:互联网 发布:关于程序员的搞笑段子 编辑:程序博客网 时间:2024/05/22 10:48
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
public boolean isMatch(String s, String p) {if(p.length()==0||p==null){return s==null||s.length()==0;}if(s==null){return false;}if(s.length()==0){if(p.length()%2==1)return false;else{for(int i=0;i<p.length();i++){if(i%2==1&&p.charAt(i)!='*'){return false;}}return true;}}if(p.length() == 1){if(s.length()>1){return false;}if(p.charAt(0) == s.charAt(0)||p.charAt(0)=='.'){return true;}return false;}else{if(p.charAt(1)=='*'){while(s.length()!=0&&(p.charAt(0)==s.charAt(0)||p.charAt(0)=='.')){if(isMatch(s,p.substring(2))){return true;}s = s.substring(1);}return isMatch(s,p.substring(2));}else{if(p.charAt(0)==s.charAt(0)||p.charAt(0)=='.'){return isMatch(s.substring(1),p.substring(1));}return false;}}}
基本思想就是:回溯法,对于'*'和它之前的字符t(可以是任意字符)组成的元组,s中的t可以使用p中的t*来匹配,也可以不使用,如果不使用,就isMatch(s,p.substring(2))利用p后面的来匹配t,如果后面的不能匹配,就将s=s.substring(1),这句话就相当于使用了t*来匹配t,然后继续判断是否进入while循环
- LeetCode正则表达式-Regular Expression Matching
- *LeetCode 10 Regular Expression Matching 正则表达式
- 正则表达式匹配-leetcode Regular Expression Matching
- 判断正则表达式是否匹配 Regular Expression Matching @LeetCode
- LeetCode OJ 之 Regular Expression Matching (正则表达式匹配)
- LeetCode 10 Regular Expression Matching (正则表达式匹配)
- leetcode系列(34)Regular Expression Matching 正则表达式匹配
- Leetcode #10 Regular Expression Matching 正则表达式匹配 解题小节
- LeetCode 10. Regular Expression Matching(正则表达式匹配)
- leetcode(10) - Regular Expression Matching 正则表达式匹配
- leetcode 10 Regular Expression Matching(简单正则表达式匹配)
- LeetCode-10-Regular-Expression-Matching 递归模拟正则表达式
- Regular Expression Matching 正则表达式匹配
- 【正则表达式判断】Regular Expression Matching
- 10. Regular Expression Matching&正则表达式匹配
- Regular Expression Matching正则表达式匹配
- 正则表达式匹配(Regular Expression Matching)
- [LeetCode]—Regular Expression Matching 正则匹配
- 1. How to review the version of Linux
- 如何设计一个好的RESTful开放API平台
- Linux启动流程一览图
- 堆和栈的区别
- 重新认识javascript(五)
- LeetCode正则表达式-Regular Expression Matching
- Volly框架解析!!
- 在eclipse LDT(Koneki)中搭建quick-cocos2d-x的lua开发环境
- OpenCV4Android开发之旅(二)----Eclipse调用OpenCV2.4.4的Java接口配置及示例
- (笔记)如何构建有效的自动化测试笔记
- 最近有点焦躁
- 64位WIN7系统 下 搭建Android开发环境
- haml构建网页框架的一些小总结!!
- svn A conflict in the working copy obstructs the current operation