하나의 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