1. 程式人生 > >【python】【leetcode】【演算法題目7—Reverse Integer】

【python】【leetcode】【演算法題目7—Reverse Integer】


一、題目描述

題目原文:

Reverse digits of an integer.

(將一個整數反轉輸出)

舉例:

Example1: x = 123, return 321
Example2: x = -123, return -321

注意:

If the integer's last digit is 0, what should the output be? ie, cases such as 10, 100.

(要考慮數字以0結尾的情況)

Did you notice that the reversed integer might overflow?

Assume the input is a 32-bit integer, then the reverse of 1000000003 overflows. How should you handle such cases?

For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

(我們要考慮溢位的情況:假設為32為整數(-2^31~2^31-1 即:-2147483648到2147483647),反轉後結果溢位時返回0)

二、題目分析

思路:將數字轉化為字串列表的形式表示,然後用列表的切片操作:[ : : -1] 或者 列表函式str.reverse() 進行反轉,反轉後對值溢位判定即可。

本文用列表切片的方式進行反轉操作。

三、Python程式碼

class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        if x >= 0:
            result = int(str(x)[::-1])
            if result > 2147483647:
                return 0
            else:
                return result
        else:
            x = 0 - x
            result = 0 - int(str(x)[::-1])
            if result < -2147483648:
                return 0
            else:
                return result


四、其他