LeetCode_Easy心得:7. Reverse Integer(C语言)

Reverse digits of an integer .

/** 题目分析:本题要求输入一个整型数x,然后将高低位置换。讲通俗一点就是对输入的x进行反转操作。 */


Example1: x = 123, return 321
Example2: x = -123, return -321


/** 代码思路:通过对输入的x不断进行以10为除数的取余和整除操作,取余操作目的是提取x最低位,接着使用整除来过滤x最低位;每次提取出来x最低位之后,将新整型数temp的数位左移一位,再将提取的x最低位数放在temp个位;对x进行若干次取余整除操作之后,当x等于0时,此时的temp就是x的反转数,即我们需要return的值;

 */



int reverse(int x) {
    int temp=0;

    while(0 != x){
        
        if (temp > INT_MAX/10 || temp < INT_MIN/10)     //若变量temp即将超过int范围,那么返回0;
             return 0;
        }

       temp = temp*10 + x % 10;        //将变量左移一个整数位,取余结果放在个位;
        x = x / 10;                     //类似于将x右移一个整数位,原来的个位舍弃,十位变个位;
    }
    
   return temp;
}



//  LeetCode运行时间:13ms±3ms;

/** PS:代码中出现的

                               INT_MAX =2147483647

                               INT_MIN =-2147483648;

 */


你可能感兴趣的:(LeetCode_Easy)