题目地址: https://leetcode-cn.com/problems/reverse-integer/submissions/
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
提示:
-2^31 <= x <= 2^31 - 1
class Solution {
public int reverse(int x) {
int flag=1;
if(x<0) flag=-1;
x=Math.abs(x);
int resault=0;
while(x!=0){
int temp= x % 10 + resault*10; //结果乘以10+个位数
//判断是否越界,还原上一次的运算是否正常,超出int 4字节范围加法会变得不正常
// 临时值-个位数/10 就是已经排好的resault部分,如果不相同说明上次累加有问题
if(( temp - x % 10) / 10 !=resault) {
return 0;
}
resault=temp;
x=x/10;
}
return resault*flag;
}
}
判断数字正负,保存下符号
把数字弄成绝对值,方便统一计算方法
利用每次取个位数倒着排的方法实现倒序
利用加法是否能正常运行,判断是否越界
判断数字越界范围
如何反转数字
https://www.bilibili.com/video/BV1654y1D7u1?spm_id_from=333.794.header_right.history_list.click
行动消除疑虑