Regular Expression Matching
2015-01-22 16:46
211 查看
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") → false isMatch("aa","aa") → true isMatch("aaa","aa") → false isMatch("aa", "a*") → true isMatch("aa", ".*") → true isMatch("ab", ".*") → true isMatch("aab", "c*a*b") → true
判断正则表达式是否合法 正则表达式会用 . 来表示任意一个字符 用 *来表示一个或多个上一字符 根据这两点 在进行判断时 最主要是分清 * 存在与否的情况
代码如下:
public class Solution { public boolean isMatch(String s, String p) { if(p.length()==0) return s.length()==0; if(p.length()==1){ if(s.length()<1||s.charAt(0)!=p.charAt(0)&&p.charAt(0)!='.')return false; else{ return isMatch(s.substring(1), p.substring(1)); } } if(p.charAt(1)=='*'){ if(isMatch(s,p.substring(2))) return true; for(int i=0;i<s.length();i++){ if(p.charAt(0) != s.charAt(i)&&p.charAt(0)!='.')return false; if(isMatch(s.substring(i+1), p.substring(2))) return true; } }else{ if(s.length()<1||(p.charAt(0)!='.'&&s.charAt(0)!=p.charAt(0)))return false; else{ return isMatch(s.substring(1), p.substring(1)); } } return false; } }
相关文章推荐
- Leetcode 10 Regular Expression Matching
- 【LeetCode with Python】 Regular Expression Matching
- 46:Regular Expression Matching
- 【LeetCode】10. Regular Expression Matching
- LeetCode 10. Regular Expression Matching
- leetcode---regular-expression-matching---字符串
- LeetCode: Regular Expression Matching
- leetcode 10. Regular Expression Matching
- leetcode Regular Expression Matching
- [LeetCode]Regular Expression Matching、Wildcard Matching
- Regular Expression Matching
- Regular Expression Matching
- [leetcode 10] Regular Expression Matching
- 【leetcode刷题笔记】Regular Expression Matching
- Regular Expression Matching
- Regular Expression Matching in the Wild
- Regular Expression Matching
- 【leetcode】Regular Expression Matching (hard) ★
- Leetcode -- Regular Expression Matching
- 【leetcode】Regular Expression Matching