ARTS(1)

Algorithm

整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:
输入: 123 输出: 321
示例 2:
输入: -123 输出: -32
示例 3:
输入: 120 输出: 21

注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer

分析

一开始想通过移位的方式去解决,终究没有找到方法,可能对移位操作没那么熟悉的缘故。参考了评论里的一种解决方案:

  • 对 10 取余操作得到个位数
  • 对 10 取整,去掉个位数字
  • 将通过取余得到的数字追加到反转的后面

代码 - Swift

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
func reverse(_ x: Int) -> Int {
var reverseNum = 0
var numbers = x
while numbers != 0 {
let temp = numbers % 10
numbers = numbers / 10
reverseNum = reverseNum * 10 + temp
}

if reverseNum > Int32.max || reverseNum < Int32.min {
return 0
}
return reverseNum

}
}
-------------本文结束谢谢欣赏-------------
Alice wechat