Java 寻找回文数
给定两个数字01409802 我必须找到他们之间的所有回文。 请建议最佳算法,如果有任何补救措施。谢谢 这些数字将增加到01410142,…0220(回文),直到9802年 我在下面试了一个Java 寻找回文数,java,algorithm,dynamic-programming,palindrome,Java,Algorithm,Dynamic Programming,Palindrome,给定两个数字01409802 我必须找到他们之间的所有回文。 请建议最佳算法,如果有任何补救措施。谢谢 这些数字将增加到01410142,…0220(回文),直到9802年 我在下面试了一个 public static void calc(String s1,String s2){ int count=0; int s=Integer.parseInt(s1); int e=Integer.parseInt(s2); for(int i=s;i<=e;i++
public static void calc(String s1,String s2){
int count=0;
int s=Integer.parseInt(s1);
int e=Integer.parseInt(s2);
for(int i=s;i<=e;i++){
if(i<1000){
if(i%10==0){
i=i/10;
if(i%10==i/10){
count++;
}
}
}else{
if(isPalindrome(i)){
count ++;
}
}
}
System.out.println(count);
}
public static boolean isPalindrome(int number) {
int palindrome = number; // copied number into variable
int reverse = 0;
while (palindrome != 0) {
int remainder = palindrome % 10;
reverse = reverse * 10 + remainder;
palindrome = palindrome / 10;
}
if (number == reverse) {
return true;
}
return false;
}
publicstaticvoidcalc(字符串s1、字符串s2){
整数计数=0;
ints=Integer.parseInt(s1);
int e=Integer.parseInt(s2);
对于(int i=s;i我投票结束这个问题,因为它更适合优化工作代码。这些数字的值能有多大?如果0140
是一个数字,0220
是一个回文数字吗?(因为220
不是。)@biziclop yes here 0220回文速度太慢是因为什么?你真的应该给出更多关于输入数据的细节(例如,它应该处理多少对下限和上限)以及获得有意义答案的预期性能。