LeetCode 7. Reverse Integer

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     }

 

posted @ 2019-07-11 20:04  cheng102e  阅读(96)  评论(0编辑  收藏  举报