Recently I've circled back to LeetCode to have some fun with SQL and algorithms questions and am documenting the puzzle solving journey.
This time I reviewed the 7. Reverse Integer Python which is a Medium algorithm question. Skip to the bottom for the video session if you'd prefer đ
The Problem
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
My Thought Process
There are 3 things I believe we need to solve for here.
Reverse the Integer by casting as a string. We also need to account for negative values so I cast an absolute value of the Integer as a string
Only 32 bit Integers are allowed so add a validation check
Determine if the Integer was negative to begin with. If so, make it negative when returned
My Code
Using the 3 steps above I put together the code below which solved the puzzle in the top 94.6% responses.
class Solution:
def reverse(self, x: int) -> int:
#convert input into string
ostring = str(abs(x))[::-1]
#check if 32bit
if int(ostring) > 2**(31):
ostring = '0'
#next check if orig was negative
elif x < 0:
ostring = '-' + ostring
return(int(ostring))
Maybe you came up with a different method? Drop it in the comments below.
Thanks for checking out this blog post. If you found this post helpful please consider donating via PayPal. Any contribution is appreciated!
Comentarios