请参阅下面的Java代码以获取回文。
这是为了检查代码逻辑是对还是错
/* Please expalin why this logic is wrong*/
public class IntegerIsPalindrome {
public static boolean numPalindrome(int x){
String ParseNum = Integer.toString(x);
int lenPar = ParseNum.length();
for(int i = 0 ; i < ParseNum.length();i++){
if(ParseNum.charAt(0) != ParseNum.charAt(lenPar -1 -i)){
return false;
}
}
return true;
}
public static void main(String args[]){
boolean result = numPalindrome(323);
System.out.println(result);
}
}
最佳答案
这是因为您总是比较第一个字符。特别:
ParseNum.charAt(0)...
您应该将其更改为:
ParseNum.charAt(i)...
查看323,比较第一个字符“ 3”和最后一个字符“ 3”。然后,将第一个“ 3”与“ 2”进行比较,结果为false。
关于java - 为什么这种逻辑对整数回文是错误的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46950273/