LeetCode-7. Reverse Integer | 整数反转
题目
Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.
Assume the environment does not allow you to store 64-bit integers (signed or unsigned).
Example 1:
Input: x = 123
Output: 321
Example 2:
Input: x = -123
Output: -321
Example 3:
Input: x = 120
Output: 21
Example 4:
Input: x = 0
Output: 0
Constraints:
-231 <= x <= 231 - 1
题解
通过题目可以看出来,这道题是让我们翻转一个整数,比如123,个位是1十位是2百位是3,反转后个位是3十位是2百位是1。
照着官方题解的解法一:弹出和推入数字 & 溢出前进行检查写的Go版本
func reverse(x int) int {
rev := 0
INT_MIN:=-2147483648
INT_MAX:=2147483647
for x != 0 {
pop := x % 10
x /= 10
if rev > INT_MAX / 10 || rev == INT_MAX / 10 && pop >7 {
return 0
}
if rev < INT_MIN / 10 || rev == INT_MIN / 10 && pop < -8 {
return 0
}
rev = rev * 10 + pop
}
return rev
}
leetcode-cn执行:
执行用时:0 ms, 在所有 Go 提交中击败了100.00%的用户
内存消耗:2.1 MB, 在所有 Go 提交中击败了95.50%的用户
leetcode执行:
Runtime: 4 ms, faster than 41.60% of Go online submissions for Reverse Integer.
Memory Usage: 2.3 MB, less than 14.22% of Go online submissions for Reverse Integer.
注意
- 目前计划先把第一解法写出来,后期再添加优化的解法。
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子里和园子外的大大们指正错误,共同进步。或者直接私信我 (^∀^)
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
您的资助是我最大的动力!
金额随意,欢迎来赏!
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的
本博客的所有打赏均将用于博主女朋友的化妆品购买以及养肥计划O(∩_∩)O。我是【~不会飞的章鱼~】!