正则表达式匹配
正则表达式匹配
http://www.nowcoder.com/practice/28970c15befb4ff3a264189087b99ad4
这道题目自己觉得挺难。
import java.util.*;
public class Solution {
public boolean match (String s, String p) {
if (s == null || p == null)
return false;
return doMatch(s, 0, p, 0);
}
private boolean doMatch(String s, int i, String p, int j) {
if (i == s.length() && j == p.length()) return true;
if (i != s.length() && j == p.length()) return false;
if (j + 1 < p.length() && p.charAt(j + 1) == '*') {
if ((i < s.length() && p.charAt(j) == s.charAt(i))
|| (p.charAt(j) == '.' && i != s.length())) {
return doMatch(s, i, p, j + 2)
|| doMatch(s, i + 1, p, j)
|| doMatch(s, i + 1, p, j + 2);
} else {
return doMatch(s, i, p, j + 2);
}
}
if ((i < s.length() && p.charAt(j) == s.charAt(i))
|| (p.charAt(j) == '.' && i != s.length())) {
return doMatch(s, i + 1, p, j + 1);
}
return false;
}
}
CVTE公司福利 672人发布
查看1道真题和解析