您的位置:首页 > 其它

【Leetcode】Reverse Integer

2014-05-23 00:12 387 查看

问题

Reverse digits of an integer.

Example1: x = 123, return 321

Example2: x = -123, return -321

代码

class Solution {
public:
int reverse(int x) {
int neg = 0;
if(x < 0) neg = 1;
else    neg = 0;

int x_back = abs(x);
int temp = 0;
while (x_back > 0) {
temp = temp * 10 + x_back % 10;
x_back /=10;
}

return neg?(-1) * temp:temp;
}
};


分析

把符号提取出来,然后循环的对绝对值之后的X result * 10 + x%10 ; x/= 10; 最后把符号补上返回即可.

值得注意的是:

这里肯定会存在负数、正数超过了 singed int 的范围,但是题目如果考虑到需要翻转,应该不会故意给出一个不合法的值,比如 1999999999,在没有翻转的时候,它是合法的,但是翻转之后,显然会溢出。反正这里需要注意下就完事了。

总结

基本的数字计算算法,没啥新意。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: