力扣-每日一题

简介: 给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境

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

Java

方法一:

class Solution {

   public int reverse(int x) {

       int rev = 0;

       while (x != 0) {

           int pop = x % 10;

           x /= 10;

           if (rev > Integer.MAX_VALUE/10 || (rev == Integer.MAX_VALUE / 10 && pop > 7)) return 0;

           if (rev < Integer.MIN_VALUE/10 || (rev == Integer.MIN_VALUE / 10 && pop < -8)) return 0;

           rev = rev * 10 + pop;

       }

       return rev;

   }

}

方法二:

class Solution {

   public int reverse(int x) {

       if(x==0){

           return 0;

       }

       long res = 0;

       while (x != 0){

           res = res * 10 + x % 10;

           x /= 10;

       }

       if (res>Math.pow(2,31)||res<Math.pow(-2,31)){

           res=0;

       }

       return (int) res;

 

   }

}


目录
相关文章
|
5月前
|
存储 人工智能 算法
力扣每日一题 6/4
力扣每日一题 6/4
33 3
|
5月前
力扣每日一题 6/8
力扣每日一题 6/8
29 3
|
5月前
力扣每日一题 6/2
力扣每日一题 6/2
32 3
|
5月前
力扣每日一题 6/3
力扣每日一题 6/3
30 3
|
5月前
力扣每日一题 6/1
力扣每日一题 6/1
40 3
|
5月前
力扣每日一题 5/29
力扣每日一题 5/29
31 3
|
5月前
|
机器学习/深度学习
力扣每日一题 5/31
力扣每日一题 5/31
27 2
|
11月前
|
算法 C语言 索引
每日一题:LeetCode-283. 移动零
每日一题:LeetCode-283. 移动零
每日一题:Leetcode283 移动零
每日一题:Leetcode283 移动零
|
算法
LeetCode每日一题(24)——后继者
后继者 1.题目 2.示例 3.思路 4.代码