LeetCode题目,7. Reverse Integer
先看题目描述
大意就是给定一个有符号整数,让我们实现将其反转,若翻转后溢出,则返回 0
算法和思路
思路就是一直弹出 x 的最后一位数字,并将它推入到 ans 的后面,最后 ans 将与 x 相反,返回 ans 即可,过程如下
- ans = ans * 10 + x % 10
- x = x / 10
还有要注意的就是溢出的问题,看题解时发现了一个很巧妙的方法,若 ans * 10 + x % 10 后未溢出,ans 将与 ans * 10 / 10 相等;若 ans * 10 + x % 10 后溢出,则 ans 与 ans * 10 / 10 不相等,直接返回 0 即可
算法源码
1 | class Solution { |
注意:在 Java 中,-123 % 10 = -3,Math.floorMod(-123, 10) 才等于 7