溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用Python怎么對整數(shù)進行反轉(zhuǎn)

發(fā)布時間:2021-03-10 13:52:13 來源:億速云 閱讀:562 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章為大家展示了使用Python怎么對整數(shù)進行反轉(zhuǎn),內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

題目:

給出一個 32 位的有符號整數(shù),你需要將這個整數(shù)中每位上的數(shù)字進行反轉(zhuǎn)。

示例 1:

  輸入: 123

  輸出: 321   

示例 2:

  輸入: -123

  輸出: -321   

示例 3:

  輸入: 120

  輸出: 21

注意:

假設(shè)我們的環(huán)境只能存儲得下 32 位的有符號整數(shù),則其數(shù)值范圍為 使用Python怎么對整數(shù)進行反轉(zhuǎn) 。請根據(jù)這個假設(shè),如果反轉(zhuǎn)后整數(shù)溢出那么就返回 0。

解題思路:

1.實現(xiàn)數(shù)據(jù)的反轉(zhuǎn)

如果是正數(shù):

tra = 0
while x != 0:
  n2 = x%10
  x = x //10
  tra = tra*10 + n2

如果是負數(shù)就abs()一下這個數(shù)

2.溢出判定

給出范圍[?2^31, 2^31 ? 1]

則輸出的結(jié)果tra就必須滿足這個范圍.

代碼:

class Solution(object):
 def reverse(self, x):
 base = 1
 for i in range(31):
 base = base * 2
 two_Max = base - 1
 two_Min = -base
 tra = 0
 if x < 0:
 x = abs(x)
 while x != 0:
 n2 = x % 10
 if tra > abs(two_Min) // 10 or (tra == abs(two_Min) // 10 and n2 < -8):
  return 0
 x = x // 10
 tra = tra * 10 + n2
 return -tra
 else:
 while x != 0:
 n2 = x % 10
 if tra > two_Max//10 or (tra == two_Max and n2 > 7 ):
  return 0
 x = x // 10
 tra = tra * 10 + n2
 return tra

補充:python實現(xiàn)數(shù)字反轉(zhuǎn)_python 數(shù)字怎么反轉(zhuǎn)

每次寫 Python 都會忘記該怎么寫,最后只能去 Stack Overflow 查?我也一樣。時間一長,這讓人厭倦。

這15個 Python 技巧和竅門,可以幫你提高效率

1. 交換值

x, y = 1, 2 
print(x, y) 
x, y = y, x 
print(x, y)

2. 字符串列表合并為一個字符串

sentence_list = ["my", "name", "is", "George"] 
sentence_string = " ".join(sentence_list) 
print(sentence_string)

3. 將字符串拆分為子字符串列表

sentence_string = "my name is George" 
sentence_string.split() 
print(sentence_string)

4. 通過數(shù)字填充初始化列表

[0]*1000 
# List of 1000 
zeros [8.2]*1000 
# List of 1000 8.2's

5. 字典合并

x = {'a': 1, 'b': 2} 
y = {'b': 3, 'c': 4} 
z = {**x, **y}

6. 反轉(zhuǎn)字符串

name = "George" name[::-1]

7. 從函數(shù)返回多個值

def get_a_string(): 
a = "George" 
b = "is" 
c = "cool" return a, b, c 
sentence = get_a_string() (a, b, c) = sentence

8. 列表解析式

a = [1, 2, 3] 
b = [num*2 for num in a] # Create a new list by multiplying each element in a by 2

9. 遍歷字典

m = {'a': 1, 'b': 2, 'c': 3, 'd': 4} for key, value in m.items(): print('{0}: {1}'.format(key, value))

10. 同時遍歷列表的索引和值

m = ['a', 'b', 'c', 'd'] for index, value in enumerate(m): print('{0}: {1}'.format(index, value))

11. 初始化空容器

a_list = list() 
a_dict = dict() 
a_map = map() 
a_set = set()

12. 刪除字符串兩端的無用字符

name = " George " name_2 = "George///" name.strip() # prints "George" name_2.strip("/") # prints "George"

13. 列表中出現(xiàn)最多的元素

test = [1, 2, 3, 4, 2, 2, 3, 1, 4, 4, 4] print(max(set(test), key = test.count))

14. 檢查對象的內(nèi)存使用情況

import sys x = 1 print(sys.getsizeof(x))

15. 將 dict 轉(zhuǎn)換為 XML

from xml.etree.ElementTree import Element def dict_to_xml(tag, d): ''' Turn a simple dict of key/value pairs into XML ''' elem = Element(tag) for key, val in d.items(): child = Element(key) child.text = str(val) elem.append(child) return elem

上述內(nèi)容就是使用Python怎么對整數(shù)進行反轉(zhuǎn),你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI