LeetCode7.Reverse Integer

来源:互联网 发布:mac下载fs2you 编辑:程序博客网 时间:2024/05/17 01:32

Reverse digits of an integer.

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

反转一个整数,在这里要注意判断溢出,当一个正整数溢出的时候,计算机会把它调整成一个负数,具体的可以参考补码的溢出调整。

思路:将整数先转换成一个字符串,判断第一位的符号,然后逐位累加。

num < 0就是在判断是否溢出。

if (num < 0)return 0;
class Solution {public:    int reverse(int x) {        int num=0;        string s = to_string(static_cast<long long>(x));        int leng = s.length();        if (s[0]== '-')        {            for (int i = 1;i<leng;i++)            {                int temp = (int)(s[i]-'0')* pow(10.0,(i-1));                num = num+temp;                if (num < 0 )                    return 0;            }            num = -num;        }        else        {            for (int i = 0;i<leng;i++)            {                int temp = (int)(s[i]-'0')* pow(10.0,i);                num =num +temp;                if (num < 0)                    return 0;            }        }        return num;    }};
0 0