LeetCode 7. 整数反转

 

7. 整数反转

难度简单

 

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321

 示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31,  2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

思路:int用二字节表示,范围是-32768~32767;long用4字节表示,范围是-2147483648~2147483647。所以该题选择long int 型,整数逆序利用取余,求整来完成,然后判断反转后的数字是否溢出,

由此来决定最后返回的数字。

int reverse(int x){
    long temp=0;
    while(x!=0){
        temp=temp*10+x%10;
        x/=10;
    }
    if(temp>2147483647||temp<-2147483648){
        temp=0;
    }

    return temp;
}

 

原文地址:https://www.cnblogs.com/woju/p/12514385.html