Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬의 역정수

<시간/>

하나의 32비트 부호 있는 정수가 있다고 가정합니다. 우리는 숫자를 가져와 숫자를 바꿔야 합니다. 따라서 숫자가 425와 같으면 출력은 524가 됩니다. 또 다른 점은 숫자가 서명되어 있으므로 일부 음수가 있을 수 있다는 점입니다. 따라서 숫자가 -425이면 -524가 됩니다.

여기에 몇 가지 가정이 있습니다. 32비트 부호 있는 정수 영역에서 사용한다고 가정했습니다. 따라서 범위는 [-232 ~ 232 – 1]이 됩니다. 따라서 숫자가 범위에 없으면 함수는 0을 반환합니다.

이를 해결하기 위해 Python 코드를 사용합니다. 먼저 주어진 정수를 문자열로 변환합니다. 따라서 문자열의 첫 번째 문자가 '-'이면 숫자는 음수이므로 인덱스 1에서 인덱스 길이 – 1로 반대로 합니다. 그리고 마지막으로 반환하기 전에 정수로 변환합니다. 양수인 경우 문자열을 반대로 하고 반환하기 전에 정수로 만드십시오. 각각의 경우에 숫자가 32비트 정수 범위에 있는지 확인합니다. 범위를 초과하면 0을 반환합니다.

더 나은 이해를 위해 구현을 살펴보겠습니다.

class Solution(object):
   def reverse(self, x):
      """
      :type x: int
      :rtype: int
      """
      x = str(x)
      if x[0] == '-':
         a = int('-' + x[-1:0:-1])
         if a >= -2147483648 and a<= 2147483647:
            return a
         else:
            return 0
         else:
            a = int(x[::-1])
            if a >= -2147483648 and a<= 2147483647:
               return a
            else:
               return 0
ob1 = Solution()
print(ob1.reverse(-425))

입력

print(ob1.reverse(-425))

출력

-524