前言
力扣第七题如下所示:
一、思路
在仔细阅读题目后,可以从题目得知以下两个信息:
- 输入:32位有符号整数,如 -123
- 输出:从低位至高位的有符号整数,如 -321
以具体例子分析:
变量说明如下
x:输入值
target:输出值
输入: x = 3410913 为例(这个数是随手乱敲的~)
反转步骤:
- x % 10 = 3,拿到最低位 3
- target = 3 + target * 10 ,转为高位
- x = x / 10,丢弃 x 的最低位
- 重复 步骤 1~3
此题总结其实就一句话:取余拿到最低位,转为高位
二、实现
1. 实现代码
变量含义与上文思路中保持一致
public int reverse(int x) {
int target= 0;
while (x != 0) {
// 超出范围,直接返回 0
if (target < Integer.MIN_VALUE / 10 || target > Integer.MAX_VALUE / 10) {
return 0;
}
// 低位转高位
target = x % 10 + target * 10;
// 丢弃低位
x = x / 10;
}
return target;
}
2. 测试代码
public static void main(String[] args) {
Number7 n = new Number7();
System.out.println(n.reverse(1534236469));
}
3. 执行结果
执行结果如下所示:
三、总结
今天是力扣第七题~
本系列将会更新力扣的1-10题,连续更新10天!