AMAZON真是有病啊。# PhotoGear - 摄影器材
A*H
1 楼
是一定code有问题么,还是有可能程序跑得不够快?
wildcard matching 那题,small test 过了,large test 一直timeout, 大家帮忙看
看这个java code有什么问题么? 除了暴力法,还有更快得解法么?
public boolean isMatch(String s, String p) {
return match(s, p, 0, 0);
}
public boolean match(String s1, String s2, int i1, int i2) {
int l1 = s1.length();
int l2 = s2.length();
if (i2 == l2) return i1 == l1;
if (s2.charAt(i2) == '*') {
while (i2 i2++; // find next non * character
while (i1 < l1) {
if (match(s1, s2, i1++, i2))
return true;
}
return match(s1, s2, i1, i2); //when i1 ends
} else if (i1 < l1 &&
(s2.charAt(i2) == '?' || s1.charAt(i1) == s2.charAt(i2))) {
return match(s1, s2, i1+1, i2+1);
}
return false;
}
wildcard matching 那题,small test 过了,large test 一直timeout, 大家帮忙看
看这个java code有什么问题么? 除了暴力法,还有更快得解法么?
public boolean isMatch(String s, String p) {
return match(s, p, 0, 0);
}
public boolean match(String s1, String s2, int i1, int i2) {
int l1 = s1.length();
int l2 = s2.length();
if (i2 == l2) return i1 == l1;
if (s2.charAt(i2) == '*') {
while (i2
while (i1 < l1) {
if (match(s1, s2, i1++, i2))
return true;
}
return match(s1, s2, i1, i2); //when i1 ends
} else if (i1 < l1 &&
(s2.charAt(i2) == '?' || s1.charAt(i1) == s2.charAt(i2))) {
return match(s1, s2, i1+1, i2+1);
}
return false;
}