Reverse Integer

两种解法 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
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容