题目:整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21
方法一:
func reverse(x int) int {
//确定符号
flags := 1
if x <1{
flags = -1
}
x = int(math.Abs(float64(x)))
strx := strconv.FormatInt(int64(x),10)
i:= len(strx)
result :=0
for i>0{
temp := x %10
temp *=int(math.Pow(float64(10),float64(i-1)))
result += temp
x = x/10
i--
}
result *= flags
//判断是否超出要求的范围,如果超出则直接返回0
if result <math.MinInt32 || result >math.MaxInt32{
return 0
}
return result
}
方法二:
func reverse(x int) int {
var res int
for ; x != 0; x /= 10 {
res = res*10 + x%10
if res > math.MaxInt32 || res < math.MinInt32 {
return 0
}
}
return res
}