(LeetCode) 7. Reverse Integer
Reverse Integer
Explore : Interview > Top Interveiw Questions > Easy Collection
분류 : String
난이도 : Easy
Problem Given a signed 32-bit integer x
, return x
with its digits reversed .
If reversing x
causes the value to go outside the signed 32-bit integer range [-2^31, 2^31 - 1]
, then return 0
.
Assume the environment does not allow you to store 64-bit integers (signed or unsigned).
Example 1 1 2 Input: x = 123 Output: 321
Example 2 1 2 Input: x = -123 Output: -321
Example 3 1 2 Input: x = 120 Output: 21
Example 4
Constraints
Solution
Exapnder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 class Solution { fun reverse (x: Int ) : Int { var value = x var isMinus: Int = 1 if (x < 0 ) { isMinus = -1 value *= isMinus } var str = value.toString() str = str.reversed() try { str.toInt() } catch (e: NumberFormatException) { return 0 } return (str.toInt()) * isMinus } }
Point of Thinking
입력으로 주어지는 숫자가 음수라면 결과값에 음수만 곱해서 반환하면 된다.
Int를 String으로 바꾼 후 reverse 처리하면 바로 뒤집을 수 있다.
뒤집었을 때 맨 앞에 오게되는 0의 경우 "021"
-> 21
로 변환하는 toInt()
메서드에서 자동으로 처리된다.
표현 범위를 넘어서는 값은 toInt()
에서 Exception을 발생시키므로 이때 0
을 반환한다.