Leetcode007翻转整数(判断溢出)(九章算法res=res*10+x%10)

地址

https://leetcode-cn.com/problems/reverse-integer/submissions/

描述

思想

在不考虑溢出的情况下算翻转整数
在这里插入图片描述
考虑溢出
在这里插入图片描述
在这里插入图片描述

代码

y总的nb代码

class Solution {
    
    
public:
    int reverse(int x) {
    
    
       int res = 0;
        while (x) {
    
    
            if (x > 0 && res > (INT_MAX - x % 10) / 10) return 0;
            if (x < 0 && res < (INT_MIN - x % 10) / 10) return 0;
            res = res * 10 + x % 10;
            x /= 10;
        }
        return res;
    }
};

自己写的蒟蒻代码

class Solution {
    
    
public:
    int getlength(int x){
    
    
        int l=0;
        while(x!=0){
    
    
            x=x/10;
            l++;
        }
        return l;
    }
    int reverse(int x) {
    
    
        long res=0;
        int ans=0;
        int l=getlength(x);
        long  left=-1*pow(2.0,31);
        long  right=pow(2.0,31)-1;
        for(int i=0;i<l;i++){
    
    
            int temp=x%10;
            x=x/10;
            res+=temp*pow(10.0,l-i-1);
        }
        if(res>=left&&res<=right) {
    
    
            ans=res;
            return ans;
        };
         return 0;
    }
};

Guess you like

Origin blog.csdn.net/qq_52934831/article/details/121287109