leetcode题解||Reverse Integer 问题

来源:互联网 发布:火妹网络 编辑:程序博客网 时间:2024/05/22 02:05

problem:

Reverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321

thinking:

(1)整型反转直观很容易理解。如正负,尾数为0等问题还好处理。

(2)反转溢出问题要仔细处理。

code:

class Solution {public:    int reverse(int x) {        long long int y=x;        bool flag=true;        if(x==0)            return 0;        if(x<0)        {            y=-x;            flag=false;        }         long long int tmp=10;        int n=1;        int m=1;        long long  int result = 0;        while((y/tmp)!=0)        {            tmp*=10;            n++;        }        tmp=tmp/10;        for(int i=n;i>0;i--)        {            long long int a=y/tmp;            cout<<a<<endl;            y=y%tmp;            tmp=tmp/10;            result+=a*m;            m*=10;        }        if(abs(result)>2147483647)            return 0;        else if(!flag)            return (-result);        else            return result;    }};

0 0
原创粉丝点击