您的位置:首页 > 其它

lintcode反转整数

2017-09-07 15:52 190 查看


反转整数 

 描述
 笔记

 数据

 评测

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

您在真实的面试中是否遇到过这个题? 

Yes

样例

给定 
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提供数据吧!

 提供数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  翻转