给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
输入:x = 123 输出:321
输入:x = 120 输出:21
输入:x = -123 输出:-321
class Solution {
public int reverse(int x) {
long res = 0;
while(x/10 != 0){
res += x % 10;
res = res * 10;
x = x/10;
}
res += x % 10;
return (int)res==res?(int)res:0;
}
}
当最后一句直接return res的时候是错的 可能是数据太长如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0,所以看了解答之后把最后一句话改成了return (int)res==res?(int)res:0;转换为int后如果还相等那就返回res,如果越界了那就返回0。