LeetCode7-反轉整數
阿新 • • 發佈:2018-11-19
昨天晚上突然夢到自己身邊的朋友身患艾滋病,親身經歷了他每天被病魔折磨的過程,很揪心,早上也是被這個夢驚醒,直到現在還有些壓抑。人生無常,但生命可貴,趁著還有力氣,多去感受生活吧!每一個熱愛生命熱愛生活的人兒都值得被眷顧!
這一題也是很簡單了,資料型別為整數,那就是省事很多了。我們只需每次用除法和求餘分別得到個位,十位,百位...的數,存入一List列表中,注意的地方有兩點,一是要注意加減符號,二就是要注意數值大小範圍,題目所給的範圍是[−2^31, 2^31 − 1]。根據這個假設,如果反轉後的整數溢位,則返回 0。思路很簡單,一看便知,所以這兒我也就不把官網所給的解題思路貼出來了,直接看程式碼。
程式碼如下:
class Solution: def reverse(self, x): """ :type x: int :rtype: int """ num_reverse = 0 num_list = [] x_abs = abs(x) x_flag = 0 if -2 ** 31 <= x <= 2**31 - 1: if x < 0: x_flag = 1 flag = x_abs while flag > 0: flag = int(x_abs / 10) x_list = x_abs % 10 num_list.append(x_list) x_abs = int(x_abs / 10) for num in range(len(num_list)): num_reverse += num_list[num] * 10 ** (len(num_list) - num - 1) else: num_reverse = 0 if -2 ** 31 <= num_reverse * (-1) ** x_flag <= 2 ** 31 - 1: return num_reverse * (-1) ** x_flag else: return 0
效率嘛,很一般般。本人較懶,而且水平有限,能解出來就比較滿足了,鄙視眼