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.
32비트 정수 x가 주어질때, x를 거꾸로 하여 리턴하시오.
만약 거꾸로 된 숫자가 위 범위를 넘어 설 경우, 0을 리턴하시오.
Input: x = 123
Output: 321
Input: x = -123
Output: -321
Input: x = 120
Output: 21
숫자를 문자열로 바꾸어 거꾸로 돌리는데,
숫자라는것은 유지 되기 때문에 거꾸로 돌렸을때 앞에 0이 오면 안되고
부호가 유지되어야 한다.
이를 지키도록 문자열 파싱을 구현하면 된다.
class Solution:
def reverse(self, x: int) -> int:
if x == 0: return 0
xs = 'x' + str(x)
xs = xs[::-1].strip('0')
xs = xs[:len(xs)-1]
if xs[len(xs)-1] == '-':
ans = int('-' + xs[:len(xs)-1])
else:
ans = int(xs[:len(xs)])