Reverse Integer

2016-12-22  本文已影响0人  博林木木

两种解法 leetcode通过时间一致

func reverse(x int) int {
    flag := false
    if x<0{
        flag = true
        x = -x
    }
    numSlice := []rune(strconv.Itoa(x))
    var numResSlice []rune
    for i:=len(numSlice)-1;i>=0;i--{
        numResSlice = append(numResSlice,numSlice[i])
    }
    final,_ := strconv.Atoi(string(numResSlice))

    if flag{
        final = -final
    }

    if final>2147483648 || final< -2147483648{
        return 0
    }
    return final

}
func reverse(x int) int {
    var res []int
    var final int
    remainder := 0
    for i:=10;;i=i*10{
        remainderTmp := x%i
        res = append(res,(remainderTmp - remainder)/(i/10))
        remainder = remainderTmp
        if remainderTmp == x{
            break
        }
    }
    a := 1
    for i:=len(res)-1;i>=0;i--{
        final = final+res[i]*a
        a = a*10
    }
    if final>2147483648 || final< -2147483648{
        return 0
    }
    return final
}
上一篇下一篇

猜你喜欢

热点阅读