Friday, August 14, 2015

Leetcode 7. Reverse Integer

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

Simple problem, but still need to care about some cases.

One solution is to use Python's powerful string process ability, and another is to process the number.

Solution 1:
# T:O(lgn) S :O(1)
class Solution:
    # @param {integer} x
    # @return {integer}
    def reverse(self, x):
        sign = 1
        if x < 0:
            sign = -1
        x = sign * int(str(abs(x))[::-1])
        if x > 2147483647 or x < -2147483648:
            return 0
        else:
            return x 
Run Time: 76 ms

Solution 2:
# T:O(lgn) S :O(1)
class Solution:
    # @param {integer} x
    # @return {integer}
    def reverse(self, x):
        if not x:   # if x = 0
            return 0
        tmp = abs(x)   # get positive value
        result = 0
        while tmp >= 10:
            result = result * 10 + tmp % 10
            tmp //= 10
        else:
            result = result * 10 + tmp
        if x < 0:
            result = -result
        if result < -2147483648 or result > 2147483647:
            return 0
        return result 
Run Time: 84 ms

No comments:

Post a Comment