美文网首页
LeetCode 解题报告 - 7. Reverse Integ

LeetCode 解题报告 - 7. Reverse Integ

作者: 秋名山菜车手 | 来源:发表于2016-10-11 14:26 被阅读0次

编程语言是 Java,代码托管在我的 GitHub 上,包括测试用例。欢迎各种批评指正!

<br />

题目 —— Reverse Integer

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321
<br >

解答

  • 题目大意
    反转一个整数的所有整数位。

  • 解题思路
    对于整数取位数,我们一下能想到的方法就是除以 10 取余数,这样循环取位,就是倒序的,然后我们在另一个整数中 *10 再加上这个余数即可。

  • 代码实现

public class Solution {
    public int reverse(int x) {
        int result = 0;
        while (x != 0) {
            int remainder = x % 10;
            int newResult = result * 10 + remainder;
            if ((newResult - remainder) / 10 != result) {
                return 0;
            }
            result = newResult;
            x = x/10;
        }
        return result;
    }
}
  • 小结
    对于该题目注意两点:
    • 循环的跳出条件,因为 x 可正可负,所以等于 0 时退出。
    • 翻转整数可能引起溢出,但是溢出分正负两种情况,如何判断溢出呢?这里减去余数以后,再除以 10,判断和运算之前的结果是否相等即可。

相关文章

网友评论

      本文标题:LeetCode 解题报告 - 7. Reverse Integ

      本文链接:https://www.haomeiwen.com/subject/dwhbyttx.html