Leetcode 7. Reverse Integer with Python

Alpha, Orderly·2023년 1월 16일
0

leetcode

목록 보기
29/140
post-thumbnail

문제

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

제한

  • 2^31 <= x <= 2^31 - 1

풀이법

숫자를 문자열로 바꾸어 거꾸로 돌리는데,

숫자라는것은 유지 되기 때문에 거꾸로 돌렸을때 앞에 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)])
profile
만능 컴덕후 겸 번지 팬

0개의 댓글