整數反轉:給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

weixin_38432968發表於2020-11-27

Leetcode紀錄篇

Day1

問題描述:給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。(假設我們的環境只能儲存得下 32 位的有符號整數,請根據這個假設,如果反轉後整數溢位那麼就返回 0。)

問題解析:
因為給出的是一個32位的有符號整數,所以必須考慮反轉之後的溢位情況,32位的精度為[-2**31,2**31-1]
class Solution:
    def reverse(self, x: int) -> int:
        if x >= 0:
            a = str(x)
        else:
            a = str(-x) + '-'
        a = int(a[::-1])
        if a <= 2**31-1 and a >=-2**31-1:
            return a
        else:
            return 0 
import numpy as np
def reverse(x):
    if x >= 0:
        a = str(x)
    else:
        a = str(-x) + '-'
    a = np.int(a[::-1])
    if a <= 2 ** 31 - 1 and a >= -2 ** 31 - 1:
        print(a)
    else:
        print(0)
x = np.int(input())
reverse(x)

相關文章