昆明的房产网站建设,wordpress海报插件,百度网站优化 件,做网站有视频教吗文章目录 7. 整数反转解题思路Go代码 7. 整数反转
7. 整数反转
给你一个 32 位的有符号整数 x #xff0c;返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [ − 2 31 , 2 31 − 1 ] [−2^{31}, 2^{31} − 1] [−231,231−1] #xff0… 文章目录 7. 整数反转解题思路Go代码 7. 整数反转
7. 整数反转
给你一个 32 位的有符号整数 x 返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [ − 2 31 , 2 31 − 1 ] [−2^{31}, 2^{31} − 1] [−231,231−1] 就返回 0。
假设环境不允许存储 64 位整数有符号或无符号。
示例 1
输入x 123
输出321示例 2
输入x -123
输出-321示例 3
输入x 120
输出21示例 4
输入x 0
输出0提示 − 2 31 x 2 31 − 1 -2^{31} x 2^{31} - 1 −231x231−1
解题思路
直接操作数字麻烦我们可以改成操作字符切片
注意字符串为常量无法就地翻转故使用字节切片方便一点另外注意一下正负号和不要越界就好啦
Go代码
func reverse(x int) int {// 直接操作数字麻烦我们可以改成操作字符切片// 注意字符串为常量无法就地翻转故使用字节切片方便一点flag : false // 正负号的标记if x 0 {flag true}// 转为字符切片方便后续翻转s : []byte(fmt.Sprintf(%d,x))if flag {s s[1:] // 先不考虑负号}// 翻转字符串left,right : 0,len(s) - 1for left right {s[left],s[right] s[right],s[left]leftright--}// 转回数字结果res : string(s)if flag {res - res // 将负号加回来} num,err : strconv.Atoi(res)if err ! nil {return 0 }// 越界返回0if num math.MaxInt32 || num math.MinInt32 {return 0}return num
}