[面试常问总结] 8. 反转整数(整数转成string后反转字符串)

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

思路:

把整数转成string后反转字符串,注意处理负数和int溢出

go语言实现代码

//反转整数
func ReverseInt(x int) int {
    //int转成string
    newstr := strconv.Itoa(x)
    str := []rune(newstr)
    right := len(str) - 1
    left := 0
    //利用左右指针法,反转
    for left < right {
        if string(str[left]) == "-" {
            left++
        }
        str[left], str[right] = str[right], str[left]
        left++
        right--
    }
    //string转成int
    x, _ = strconv.Atoi(string(str))
    //超出int范围的返回0
    if 2147483647 < x || x < (-2147483648) {
        return 0
    }
    return x
}

 

posted @ 2021-05-18 23:51  唯一客服系统开发笔记  阅读(109)  评论(0)    收藏  举报