# Leetcode 筆記 :(7) Reverse Integer ###### tags: `Leetcode` ## 題目 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 [-231, 231 - 1], then return 0. Assume the environment does not allow you to store 64-bit integers (signed or unsigned). Example 1: ``` Input: x = 123 Output: 321 ``` Example 2: ``` Input: x = -123 Output: -321 ``` Example 3: ``` Input: x = 120 Output: 21 ``` Example 4: ``` Input: x = 0 Output: 0 ``` Constraints: ``-231 <= x <= 231 - 1`` ## 思考方向 1. 第一個思考則是直接使用Python 的Str處理 2. 第二則是跟其他語言一樣使用mod運算去處理 ## Code ### Solution 1(str) ```python= class Solution: def reverse(self, x: int) -> int: minus = False if x < 0: minus = True x = abs(x) result = str(x)[::-1] result = int(result) if minus == True: result = -1*result if result > 2**31 or result < -2**31: return 0 else: return result ``` ### Solution 2(Mod) ```python= class Solution: def reverse(self, x: int) -> int: minus = False result = '' if x < 0: minus = True x = abs(x) if x ==0: result = '0' while(x != 0): tmp = int(x%10) x = (x-tmp)/10 tmp = str(tmp) result += tmp result = int(result) if minus == True: result = -1*result if result > 2**31 or result < -2**31: return 0 else: return result ```