public class Solution {
public boolean isMatch(String s, String p) {
return isM(s, p, 0, 0);
}
public boolean isM(String s, String p, int i, int j) {
if (j>=p.length()) return i>=s.length();
if (j==p.length()-1) return (i==s.length()-1) && (s.charAt(i)==p.charAt(j) || p.charAt(j)=='.');
if (j+1<p.length() && p.charAt(j+1) != '*') {
if (i==s.length()) return false;
if (s.charAt(i)==p.charAt(j) || p.charAt(j)=='.') return isM(s, p, i+1, j+1);
else return false;
}
while (i<s.length() && j<p.length() && (s.charAt(i)==p.charAt(j) || p.charAt(j)=='.')) {
if (isM(s, p, i, j+2)) return true;
i++;
}
return isM(s, p, i, j+2);
}
}
没有评论:
发表评论