lintcode反转整数

来源:互联网 发布:安装mysql后怎么使用 编辑:程序博客网 时间:2024/06/07 02:16

反转整数 

将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。

样例

给定 x = 123,返回 321

给定 x = -123,返回 -321

标签 
相关题目 
本题采用数学计算法而不是文本翻转,所以末尾为0的翻转不用考虑。
坑就是要考虑溢出啊!!一开始还没搞明白怎么溢出。int型的数值范围是 -2147483648~2147483647, 那么如果我们要翻转 1000000009 这个在范围内的数得到 9000000001,而翻转后的数就超过了范围。用INT_MAX 表示int最大值 
class Solution {public:    /*     * @param n: the integer to be reversed     * @return: the reversed integer     */    int reverseInteger(int n) {        // write your code here        if(n==0)        return 0;        int sum=0;        while(n!=0){            if(abs(sum)>INT_MAX/10)//abs为取绝对值,INT_MAX是int最大值                return 0;            sum=sum*10+n%10;            n=n/10;               }    return sum;    }};

反转整数 

Accepted

总耗时: 382 ms
100% 数据通过测试.
太牛了,把AC的喜悦分享给你的朋友吧!

反转整数 

Accepted

总耗时: 382 ms
100% 数据通过测试.
太牛了,把AC的喜悦分享给你的朋友吧!
7
错误的代码也能通过?
为LintCode提供数据吧!
 提供数据

反转整数 

Accepted

总耗时: 382 ms
100% 数据通过测试.
太牛了,把AC的喜悦分享给你的朋友吧!
7
错误的代码也能通过?
为LintCode提供数据吧!
 提供数据

原创粉丝点击