LeetCode Link: https://leetcode.com/problems/reverse-integer/
Description:
Given a 32-bit signed integer, reverse digits of an integer.
给一个 32 位的有符号整数,你需要对这个整数中的每位数字进行反转。
假设我们的环境只能存储得下 32 位的有符号整数,如果反转后整数溢出那么就返回 0。
Example:
Input: 123
Output: 321
Input: -123
Output: -321
Input: 120
Output: 21
Tints:
- / 除号,123 / 10,结果取整为12
- % 求余,123 % 10,余数为 3
- 123 变为 321
// temp = 123, result = 0
// loop1: result = 0 * 10 + 123 % 10 // result = 3
// temp = 123 / 10 // temp = 12
// loop2: result = 3 * 10 + 12 % 10 // result = 32
// temp = 12 / 10 // temp = 1
// loop3: result = 32 * 10 + 1 % 10 // result = 321
// temp = 1 / 10 // temp = 0
// END LOOP
Solution:
func reverse(_ x: Int) -> Int {
var temp = x
var result = 0
while (temp != 0 ) {
result = result * 10 + temp % 10
temp /= 10
}
if result > Int(Int32.max) || result < Int(Int32.min) {
return 0
}
return result
}
网友评论