public int reverse(int x) {
int rev = 0;
while (x != 0) {
if (rev < Integer.MIN_VALUE / 10 || rev > Integer.MAX_VALUE / 10) {
return 0;
}
int digit = x % 10;
x /= 10;
rev = rev * 10 + digit;
}
return rev;
}
if条件中判断整数是否越界,这么写是因为2^31用十进制表示出来后,最前面的数为2,
反转部分为
rev=10
while(x!=0){
digit=x%10;
x=x/10;
rev=rev*10+digit;
}
return rev;