leecode 10 Regular Expression Matching
2015-04-27 18:01
281 查看
[code]class Solution { public: bool isMatch(string s, string p) { int ls = s.length(); int lp = p.length(); bool mark[ls+1][lp+1]; memset(mark,0,sizeof(mark)); mark[0][0] = 1; for(int i = 1; i < lp && p[i] == '*'; i+=2){ mark[0][i+1] = 1; } for(int i = 1; i <= ls; ++i){ for(int j = 1; j <= lp; ++j){ if(p[j-1] == '.' || p[j-1] == s[i -1]) mark[i][j] = mark[i-1][j-1]; else if(j > 1 && p[j-1] == '*') mark[i][j] = mark[i][j-2] || (mark[i-1][j] && (p[j-2] == '.' || s[i-1] == p[j-2])); // .* } } return mark[ls][lp]; } };
public boolean isMatch(String s, String p) {
boolean[] match = new boolean[s.length()+1];
Arrays.fill(match, false);
match[s.length()] = true;
for(int i=p.length()-1;i>=0;i--){
if(p.charAt(i)=='*'){
for(int j=s.length()-1;j>=0;j--) match[j] = match[j]||match[j+1]&&(p.charAt(i-1)=='.'||s.charAt(j)==p.charAt(i-1));
i--;
}
else{
for(int j=0;j<s.length();j++) match[j] = match[j+1]&&(p.charAt(i)=='.'||p.charAt(i)==s.charAt(j));
match[s.length()] = false;
}
}
return match[0];
}
相关文章推荐
- leetcode题解c++ | 10. Regular Expression Matching
- Leetcode: 10. Regular Expression Matching
- Hard 10题 Regular Expression Matching
- leetcode-10Regular Expression Matching
- LeetCode 10 Regular Expression Matching(字符串匹配)
- 10、Regular Expression Matching
- leetcode解题报告:10 Regular Expression Matching
- [leetcode 10] Regular Expression Matching
- LeetCode 10_Regular Expression Matching
- [LeetCode][10]Regular Expression Matching解析 -Java实现
- leetcode 10 Regular Expression Matching
- leetcode 10 Regular Expression Matching(简单正则表达式匹配)
- leetcode 10: Regular Expression Matching 分析及解答
- LeetCode 10 Regular Expression Matching (C,C++,Java,Python)
- Leetcode||10.Regular Expression Matching
- [leetcode-10]Regular Expression Matching(C)
- [Leetcode 10, Hard] Regular Expression Matching
- leetcode problem 10 Regular Expression Matching(动态规划)
- LeetCode (10)Regular Expression Matching
- leetcode10 Regular Expression Matching @python