7. Reverse Integer

LONGNEW·2023년 7월 5일
0

CP

목록 보기
114/155

https://leetcode.com/problems/reverse-integer/?envType=featured-list&envId=top-google-questions

input :

  • x

output :

  • x로 입력 받은 숫자를 뒤집어 출력하시오.

조건 :

  • int의 범위를 벗어날 경우 0을 반환한다.

Solution explain : Solution1

idea

  • 입력 받은 숫자가 0이면 0을 반환.
  • 음수의 경우에는 "-"를 분리하고 양수로 취급한다.
  • 0보다 크면, 10으로 나눈 나머지를 계속 저장하며 줄여나간다.
  • 반환 값이 정수 범위가 아니라면 0을 반환한다.

주의

  • 나머지를 계속 저장하면 뒤에서 부터 계산을 하니까 자연스레 뒤집힌다.
class Solution:
    def reverse(self, x: int) -> int:
        ret = ""
        if x == 0:
            return x

        if x < 0:
            ret += "-"
            x *= -1

        while x > 0:
            ret += str(x % 10)
            x //= 10

        ret = int(ret)
        if ret < -2 ** 31 or ret > 2 ** 31 - 1:
            return 0
        return ret

# s = Solution()
# print(s.reverse(1534236469))
# print(s.reverse(-123))
# print(s.reverse(120))

0개의 댓글