leetcode 7. 整数反转

176 阅读1分钟

题目链接

这道题的重点是判断数值越界。以下代码已提交通过。

import "math"

func reverse(x int) int {
    var (
        rev int
        maxR = math.MaxInt32/10
        maxP = math.MaxInt32%10
        minR = math.MinInt32/10
        minP = math.MinInt32%10
    )
    for x != 0 {
        pop := x%10
        if rev > maxR || (rev == maxR && pop > maxP) {
            return 0
        }
        if rev < minR || (rev == minR && pop < minP) {
            return 0
        }
        rev = rev*10 + pop
        x /= 10
    }
    return rev
}