LeetCode第7题(又是啥也不会的萌新被迫营业的一天doge)

leetcode第7题

题目描述:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321
示例 2:

输入: -123
输出: -321
示例 3:

输入: 120
输出: 21
注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路一:
因为要求是在[-2^31 , 2^31 -1],所以需要进行判断是否溢出。若果溢出的话直接一手return 0; 利用%10取末尾余数进行循环,然后在用*10将数字排序反转。

class Solution {
    
    
    public int reverse(int x) {
    
    
         int res = 0;
        while(x!=0) {
    
    
            //每次取末尾数字
            int tmp = x%10;
            //判断是否 大于 最大32位整数
            if (res>214748364 || (res==214748364 && tmp>7)) {
    
    
                return 0;
            }
            //判断是否 小于 最小32位整数
            if (res<-214748364 || (res==-214748364 && tmp<-8)) {
    
    
                return 0;
            }
            res = res*10 + tmp;
            x /= 10;
        }
        return res;
    }
}

思路二:
与思路一大致相同,不过引入了Integer。

class Solution {
    
    
    public int reverse(int x) {
    
    
         int ans = 0;
         while(x != 0){
    
    
             int pop = (x % 10);
             if(ans > Integer.MAX_VALUE / 10 || (ans == Integer.MAX_VALUE && pop>7)){
    
    
                 return 0;
             }
             if(ans < Integer.MIN_VALUE / 10 || (ans == Integer.MIN_VALUE / 10 && pop<-8)){
    
    
                 return 0;
             }
             ans = ans * 10 + pop;
             x /= 10;
         }
         return ans;
    }
}

关于Integer(咱也是才学会没多久的人):
Integer 类在对象中包装了一个基本类型int的值。Integer类型的对象包含一个 int 类型的字段。此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,同时还提供了其他一些处理int类型时非常有用的常量和方法。

1.Integer(int number)
该方法以一个int型变量作为参数来获取Integer对象。
例:
Intrger number = new Integer(7);

2.Integer(String str)
该方法以一个String型变量作为参数来获取Integer对象。
例:
Intrger number = new Integer(“45”);

在这里插入图片描述

除了表里的还能parseInt()将str转int,toString()、toBinaryString()、toHexString()和toOctalString()转换为十、二、十六、八进制。

上述代码中用到的MAX_VALUE表示int类型最大取值范围,MIN_VALUE则表示int类型最小取值范围。

真啥也不会萌新一个,还请各位大佬多多指教(渴望知识的眼神)

猜你喜欢

转载自blog.csdn.net/Mmisaka_10086/article/details/109586640