- 题目描述:
图片说明
- 题目链接:

https://www.nowcoder.com/practice/1a3de8b83d12437aa05694b90e02f47a?tpId=188&&tqId=38634&rp=1&ru=/activity/oj&qru=/ta/job-code-high-week/question-ranking
- 设计思想:

-视频讲解链接B站视频讲解
- 复杂度分析:
图片说明
- 代码:
c++版本:

class Solution {
public:
    /**
     * 
     * @param x int整型 
     * @return int整型
     */
    int reverse(int x) {
        // write code here
        int res = 0;//用于返回最终结果
        while(x!= 0){
            if(res < INT_MIN / 10 || res > INT_MAX / 10){
                //如果越界就知己返回溢出结果
                return 0;
            } 
            //求反转后的数字
            int num = x % 10;
            x /= 10;
            res = res * 10 + num;
        }
        return res;
    }
};

Java版本:

import java.util.*;


public class Solution {
    /**
     * 
     * @param x int整型 
     * @return int整型
     */
    public int reverse (int x) {
        // write code here
        int res = 0;//用于返回最终结果
        while(x!= 0){
            if(res < Integer.MIN_VALUE / 10 || res > Integer.MAX_VALUE / 10){
                //如果越界就知己返回溢出结果
                return 0;
            } 
            //求反转后的数字
            int num = x % 10;
            x /= 10;
            res = res * 10 + num;
        }
        return res;
    }
}

Python版本:

#
# 
# @param x int整型 
# @return int整型
#
class Solution:
    def reverse(self , x ):
        # write code here
        MAX, MIN = (2**31 - 1), -(2 ** 31)
        flag = True if x >= 0 else False
        res = 0#用于返回最终结果
        while x != 0:
            if flag == True:
                #求反转后的数字
                num = x % 10
                x //= 10
            else:
                #求反转后的数字 python负数需要下面这样处理
                num = x % (-10)
                x = -(x//-10)
            if res < (MIN//10) or res > (MAX // 10):#如果越界就知己返回溢出结果
                return 0
            res = res * 10 + num
        return res;

JavaScript版本:

/**
  * 
  * @param x int整型 
  * @return int整型
  */
function reverse( x ) {
    // write code here
    let MAX = 2147483647;
    let MIN = -2147483648;
    let res = 0;//用于返回最终结果
    while(x!= 0){
        if(res < parseInt(MIN / 10) || res > parseInt(MAX / 10)){
            //如果越界就知己返回溢出结果
            return 0;
        } 
        //求反转后的数字
        let num = x % 10;
        x = parseInt(x/10);
        res = res * 10 + num;
    }
    return res;
}
module.exports = {
    reverse : reverse
};