LeetCode刷题-- 整数反转

题目信息

给你一个 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

提示:
-231 <= x <= 231 - 1

题解代码

class Solution {
    public int reverse(int x) { 
        // 方法1: 求余取位法
        long n = 0;
        while(x!=0){
            n = n*10 + x%10;
            x = x/10;
        }
        return (int)n ==n ? (int)n : 0 ;
   }
}
class Solution {
    public int reverse(int x) { 
         // 方法2. 字符串反转
        String st1 = Integer.toString(x);
        int flag = 1;                // 标志位取值为-1
        if(x < 0){
             flag = -1;              // 标志位取值为-1
             st1 = st1.substring(1); // 将负号截取掉
       }
      try{
            // 字符串翻转,然后将翻转后的字符串转为数值
             return Integer.valueOf((new StringBuilder(st1)).reverse().toString()) * flag;   
         }catch(Exception e){
             return 0 ;
        }
    }
}

声明

来源:力扣(LeetCode)
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
原文地址:https://www.cnblogs.com/sinlearn/p/14359235.html