LeetCode 解题报告 - 7. Reverse Integer

编程语言是 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的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,776评论 0 33
  • 1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不...
    曲终人散Li阅读 3,371评论 0 19
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,166评论 0 41
  • 贪心算法 贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上...
    fredal阅读 9,284评论 3 52
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,778评论 18 399