2

题目详情

Given a 32-bit signed integer, reverse digits of an integer.

题目要求我们给出一个数的翻转数
 
Example 1:
Input: 123
Output: 321
Example 2:
Input: -123
Output: -321
Example 3:
Input: 120
Output: 21

想法

  • 这道题主要的坑就是在于一个int数值的输入,在进行翻转操作之后,不一定还符合int的范围,可能会造成异常。
  • 我们可以通过每次获得整数除10的余数,来确定当前整数的最后一位。

解法

     public int reverse(int x) {
         long res = 0;
         
         while(x != 0){
             int tail = x % 10;
             res = res*10 + tail; 
             if(res > Integer.MAX_VALUE || res < Integer.MIN_VALUE){
                 return 0;
             }
             x = x/10;
         }
         return (int)res;
     }

soleil阿璐
350 声望45 粉丝

stay real ~