【一天一道Leetcode】整數反轉

本篇推文共計2000個字,閱讀時間約3分鐘。
01
題目描述

題目描述:
給你一個32位的有符號整數x,
返回將x中的數字部分反轉后的結果。
如果反轉后整數超過 32 位的有符號整數的范圍
[?2^31,(2^31)?1],就返回0。
假設環(huán)境不允許存儲64位整數(有符號或無符號)。
如下面的示例:
輸入:x = 123
輸出:321
輸入:x = -123
輸出:-321
輸入:x = 120
輸出:21
輸入:x = 0
輸出:0提示:
1. ?2^31<=x<=(2^31)?1
02
方法和思路
我們注意題目中的條件,
如果反轉后整數超過32位的有符號整數的范圍,
[?2^31,2^31? 1],就返回0。
根據本題的示例所知道:
正數會直接進行反轉,
負數需要保存好符號再反轉。
因此我們可以將要反轉的數轉換成字符串,
判斷第一個字符串是否“-”。
若不為-,則直接進行反轉,
若為-,則保存當前符號,反轉后面的數字。

我們用代碼表示此題的解法如下:
class Solution:
def reverse(self, x: int) -> int:
s=str(x)
if s[0]=='-':
x=int('-'+s[1:][::-1])
else:
x=int(s[::-1])
if -2**31< x <(2**31-1):
return x
else:
return 0
【年終總結】你好2021,再見2020。

【快速寫好畢業(yè)論文】你不得不知曉的七個常用文獻搜索平臺

【秋招紀實錄】一篇特別正經的【騰訊】求職經驗分享

【一天一道Leetcode】回文字符串-最少分割次數

【一天一道Leetcode】楊輝三角

【一天一道Leetcode】套信封問題
你與世界
只差一個
公眾號
評論
圖片
表情

