leetcode #7 revert integer 问题

问题描述:

Reverse digits of an integer.

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

输入一个整形数字,然后输出它的反转

需要注意的是,int形变量的反转有可能是超过int的限制的,比如12345678999的反转,就会overflow,leetcode要求如果出现这种状况就要return 0.

思路是从末位循环获取输入数字每一位的值,放到新的数字中.返回数字的类型先设定为long ,如果超出int的界限,就return 0.

class Solution {
public:
    long reverse(int x) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        int sign = x > 0 ? 1 : -1;
        x = abs(x);
        long ret = 0;
        while(x)
        {
            int digit=x%10;
            ret=ret*10+digit;
            x/=10;
        }
        if(abs(ret)>INT_MAX)
            return 0;
        return ret * sign;
    }
};
原文地址:https://www.cnblogs.com/zeakey/p/4578470.html