【LeetCode】Reverse Integer Go语言实现

来源:互联网 发布:淘宝金鹰汇怎么样 编辑:程序博客网 时间:2024/06/05 06:22

问题描述

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

题意很明确,将一个整数反转输出。

思路

首先不用考虑用库函数先转为字符串再反转的方式,这根本不是算法。
整体解决思路为,依次取出整数的每一位数,然后反转,再组装成整数即可。有几个点需要考虑:

  • 取末位数。 num % 10 即可。
  • 去掉末位数。 num / 10 即可。
  • 组装整数。定义 sum := 0, 循环数字序列,每次 sum = sum * 10 + 数字即可
  • 溢出问题。问题规定了整数为32位,因此最大值为0x7FFFFFFF, 最小值为-0x80000000

Go实现

用时6ms, 击败20%用Golang的人。

var MIN int = 0x80000000var MAX int = 0x7FFFFFFFfunc reverse(x int) int {    sum := 0    for {        leftDigits := x / 10        lastDigit := x % 10        x = leftDigits        sum = sum * 10 + lastDigit        if 0 == leftDigits {            break        }    }    if sum < -MIN || sum > MAX {        fmt.Println(sum)        sum = 0    }    return sum}
0 0
原创粉丝点击