知识点:复杂度
难度:简单
题目描述
将给出的整数x翻转。
例1:x=123,返回321
例2:x=-123,返回-321
注意:翻转后的整数可能会出现溢出
解题思路:
1.用%从低位开始取,作为每一次新的结果
2.每一次计算新的结果后,用逆运算判断新结果与上一次循环的结果是否相同,因为当新的值超过最大位数时,系统会将超过最大位数的高位二进制数扔掉,便会出现新结果逆运算后与上一次循环的结果不相同,因此若不相同就说明发生了溢出。
Java代码:
public class Solution{
public int reverse(int x){
int res=0;
while(x!=0){
int tail=x%10;
int newres=res*10+tail;
if((newres-tail)/10!=res)
return 0;
res=newres;
x=x/10;
}
return res;
}
}