美文网首页
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