给你一个整数 x
,如果 x
是一个回文整数,返回 true
;否则,返回 false
。
做法有纯数学和字符串方法,字符串我是利用StringBuilder中的reverse方法进行反转然后toString以后.equals进行比较。
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
String str = Integer.toString(x);
for(int i = 0;i < str.length();i++){
sb1.append(str.charAt(i));
sb2.append(str.charAt(i));
}
sb2.reverse();
if((sb1.toString).equals(sb2.toString())){
return true;
}
else{return false;}
官方的做法是纯数学方法,通过对原数取模以及/10和*10的关系处理的。
if(x < 0){return false;}
int num = x;
int reverse = 0;
int digit = 0;
while(num > 0){
digit = num % 10;
reverse = reverse*10 + digit;
num = num / 10;
}
return reverse == x;
主要代码是digit = num % 10;reverse = reverse*10 + digit;num = num / 10;
例如121,第一次循环digit = 1,reverse=1,num = 12。第二次循环digit = 2,reverse = 12,num = 1。第三次循环digit = 1,reverse = 121,num = 0.退出循环。