Try   HackMD

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)

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)

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