整数反转
LeetCode
题目描述
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例:
输入: 123
输出: 321
输入: -123
输出: -321
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。(-2^31 = 2147483648, 2^31 - 1 = 2147483648 - 1)
请根据这个假设,如果反转后整数溢出那么就返回 0。2147483648反转后为8463847412
思考
1234 = 12310 + 4
123 = 1210 + 3
12 = 1*10+ 2
1 = 1
/// 整数反转
///
/// - Parameter x: 输入值
/// - Returns: 反转后的值
func reverse(_ x: Int) -> Int {
var result = 0
var origin = x
while origin != 0 {
result = origin % 10 + result * 10
origin = origin / 10
if result > Int32.max || result < -Int32.max {
result = 0
}
}
return result
}
网友评论