您的位置:首页 > 其它

Regular Expression Matching

2014-07-08 05:28 288 查看
public class Solution {
public boolean isMatch(String s, String p) {
if(p.length() == 0) {
return s.length() == 0;
}
if(p.length() == 1) {
return s.length() == 1 && (p.charAt(0) == '.' || s.equals(p));
}
// p.length() > 1
if(p.charAt(1) != '*') {
return s.length() > 0 && (p.charAt(0) == '.' || s.charAt(0) == p.charAt(0))
&& isMatch(s.substring(1, s.length()), p.substring(1, p.length()));
} else {
int i = 0;
for( ; i < s.length() && (p.charAt(0) == '.' || s.charAt(i) == p.charAt(0)); i++) {
if(isMatch(s.substring(i, s.length()), p.substring(2, p.length()))) {
return true;
}
}
return isMatch(s.substring(i, s.length()), p.substring(2, p.length()));
}
}
}


Time: O(n^2)

Space: O(n^2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  LeetCode String