您的位置:首页 > 其它

[Leetcode #7]Reverse Integer整数反转、逆向打印整数

2016-08-23 09:27 555 查看
原题地址:https://leetcode.com/problems/reverse-integer/

题目要求是:反转一个整数,例如:

x = 123,返回321

x = -123, 返回-321

题目比较简单,需要注意的一点是要判断是否溢出,因此需要用long类型保存结果。

public class Solution {
public int reverse(int x) {
long result = 0L;

while (x != 0) {
result = result * 10 + x % 10;
x /= 10;
}

if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) {
return 0;
}
return (int)result;
}
}
多问一句:如果要反转一个long型的整数,如何判断溢出?可以用Java类库封装好的BigDecimal类来保存结果,其内部是通过有效数字(smallValue)和幂次(scale)来保存数字的,因此能精确表示非常大的数。具体用法可以参考下面这个链接:
http://blog.csdn.net/jackiehff/article/details/8582449
另外,不同语言对负数取模的结果可能不同,用Java的话不需要特殊处理,但是其他语言(如Python)可能需要处理一下,具体参见下面这个链接:
http://www.cnblogs.com/ppboy_dxh/archive/2011/02/18/1958175.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息