题目

Given a 32-bit signed integer, reverse digits of an integer.

给定一个32位有符号整数,一个整数的反向数字。

栗子1:

Input: 123
Output: 321

栗子2:

Input: -123
Output: -321

栗子3:

Input: 120
Output: 21

Note: Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−2^31, 2^31 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

:假设我们处理的环境只能存储32位有符号整数范围内的整数:[−2^31,2^31−1]。为了解决这个问题,假设反转整数溢出时函数返回0。

题目大意

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

解题思路

  • 这一题是简单题,要求反转 10 进制数。类似的题目有第 190 题。
  • 这一题只需要注意一点,反转以后的数字要求在 [−2^31, 2^31 − 1]范围内,超过这个范围的数字都要输出 0 。

代码

func reverse7(x int) int {
    //创建临时变量
    tmp := 0
    //如果传入参数x不等于0则进入循环
    for x != 0 {
        //计算反向十进制
        tmp = tmp*10 + x%10
        x = x / 10
    }
    //判断临时变量的取值范围
    if tmp > 1<<31-1 || tmp < -(1<<31) {
        return 0
    }
    return tmp
}
最后修改:2021 年 07 月 28 日 09 : 54 AM
如果觉得我的文章对你有用,请随意赞赏