Skip to main content

Command Palette

Search for a command to run...

7. Reverse Integer

Published
•1 min read•View as Markdown

https://leetcode.com/problems/reverse-integer/description/

Core Idea

Step 1: Handle Sign

  • Store sign separately.

  • Work with abs(x).

Step 2: Reverse Digits

Use:

rem = num % 10
rev = rev * 10 + rem
num = num // 10

Step 3: Restore Sign

Instead of:

rev = rev - 2*rev

Better:

rev = -rev

Step 4: Check 32-bit Range

if rev < -2**31 or rev > 2**31 - 1:
    return 0

Code

class Solution(object):
    def reverse(self, x):
        num = abs(x)
        rev = 0

        while num > 0:
            rem = num % 10
            rev = rev * 10 + rem
            num = num // 10

        if x < 0:
            rev = -rev

        if rev < -2**31 or rev > 2**31 - 1:
            return 0

        return rev