7. Reverse Integer(整数反转)
链接:https://leetcode-cn.com/problems/reverse-integer/
题目:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
思路:
简单题,大概有两种思路,一种是直接字符串翻转,怎么翻都行,甚至可以直接整个数组转换。第二种就是数字运算,余数加到上次结果的末尾,直接输出(注意看数字越界了没)。
重点就是数字越界,我这里多加了一个判断,越界归零,虽然这样我还是错了几次。。。。
代码:
1 public static int reverse(int x) { 2 int ans = 0; 3 int num = Math.abs(x); 4 int max = Integer.MAX_VALUE/10; 5 while(num>0) 6 { 7 int t = num % 10; 8 if(ans > max) 9 return 0; 10 ans = ans * 10 + t; 11 12 num = num / 10; 13 } 14 if(x>0) 15 return ans; 16 else 17 return -ans; 18 }