如何提高ISBN验证器的效率



我正在努力提高这段代码的效率。我该怎么做?

它是从Java中的另一个类调用的类。在算法效率方面,我不是最好的,所以我很感激能得到的所有帮助。

提前谢谢。

public class Algorithm {
public static boolean check(String isbn){
if (isbn.length() == 13) {
return check13(isbn);
}
else if (isbn.length() == 10) {
return check10(isbn);
}
else {
// System.out.println("Invalid length!");
return false;
}
}
private static boolean check13(String isbn) {
int sum = 0;
for (int i = 0; i < isbn.length(); i++) {
int temp_val = isbn.charAt(i);
if (i%2 == 1) {
temp_val *= 3;
sum += temp_val;
}
else {
sum += temp_val;
}
}
// System.out.println("Valid ISBN!");
// System.out.println("Invalid ISBN!");
return sum % 10 == 0;
}
private static boolean check10(String isbn) {
int sum = 0;
for (int i = 10; i > isbn.length(); i--) {
sum += isbn.charAt(i) * i;
}
// System.out.println("Valid ISBN!");
// System.out.println("Invalid ISBN!");
return sum % 11 == 0;
}
}

您的算法所需的步骤与ISBN的长度一样多,它的效率不会比这更高。

最新更新