2.反转整数-Reverse Integer

2019-07-01  本文已影响0人  快乐捣蛋鬼

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:

  1. / 除号,123 / 10,结果取整为12
  2. % 求余,123 % 10,余数为 3
  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
}

Runtime: 8 ms-Your runtime beats 88.48 % of swift submissions.

Memory Usage: 18.9 MB-Your memory usage beats 47.08 % of swift submissions.

Analyze:使用求余符号依次得出反转后的每一位。

上一篇 下一篇

猜你喜欢

热点阅读