1. 题目:
整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
1 | 输入: 123 |
示例 2:
1 | 输入: -123 |
示例 3:
1 | 输入: 120 |
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
2. 解题:
核心就是除10,模10。但是注意两个问题:负数和溢出。
对于负数,我们使用flag
变量存符号,然后取其绝对值;
对于溢出,我们利用Java的溢出机制(不抛出异常和错误,但是变成一个其他数),将res*10
后再和该值除以10比较,看是否相同。
代码:
1 | class Solution { |