7. Reverse Integer

76 阅读1分钟

题目描述

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:
Input: 123
Output: 321

Example 2:
Input: -123
Output: -321

Example 3:
Input: 120
Output: 21

Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231, 231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

解题思路

很简单的一个题, 主要使用 % / 进行操作, 需要注意的是正数负数,最后要根据题意中,判断是否超过了 Int32的最大值

时间复杂度: O(n)

示例代码

func reverse(_ x: Int) -> Int {
    var temp = abs(x)
    var resultInt = 0
    while(temp > 0) {
        resultInt = resultInt * 10 + temp % 10 
        temp = temp / 10
    }

    if (resultInt > Int32.max) {
        return 0
    }

    return x > 0 ? resultInt : -resultInt
}