欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python簡(jiǎn)單實(shí)現(xiàn)整數(shù)反轉(zhuǎn)的畫(huà)解算法

 更新時(shí)間:2021年08月31日 12:40:36   作者:不吃西紅柿丶  
這篇文章主要介紹了python簡(jiǎn)單實(shí)現(xiàn)整數(shù)反轉(zhuǎn)采用了一個(gè)有趣的畫(huà)解算法,通過(guò)示例的題目描述來(lái)對(duì)問(wèn)題分析進(jìn)行方案的解決,有需要的朋友可以參考下

題目描述

給你一個(gè) 32 位的有符號(hào)整數(shù) x ,返回將 x 中的數(shù)字部分反轉(zhuǎn)后的結(jié)果。

如果反轉(zhuǎn)后整數(shù)超過(guò) 32 位的有符號(hào)整數(shù)的范圍 [−231, 231 − 1] ,就返回 0。

假設(shè)環(huán)境不允許存儲(chǔ) 64 位整數(shù)(有符號(hào)或無(wú)符號(hào))。

示例 1:

輸入:x = 123

輸出:321

示例 2:

輸入:x = -123

輸出:-321

示例 3:

輸入:x = 120

輸出:21

示例 4:

輸入:x = 0
輸出:0

問(wèn)題分析

首先我們想一下,怎么去反轉(zhuǎn)一個(gè)整數(shù)?

用棧?

或者把整數(shù)變成字符串,再去反轉(zhuǎn)這個(gè)字符串?

這兩種方式是可以,但并不好。

  • 實(shí)際上我們只要能拿到這個(gè)整數(shù)的 末尾數(shù)字 就可以了。
  • 以12345為例,先拿到5,再拿到4,之后是3,2,1,我們按這樣的順序就可以反向拼接處一個(gè)數(shù)字了
  • 也就能達(dá)到 反轉(zhuǎn) 的效果。

怎么拿末尾數(shù)字呢?

好辦,用取模運(yùn)算就可以了

1.jpg

  • 將12345 % 10 得到5,之后將12345 / 10
  • 將1234 % 10 得到4,再將1234 / 10
  • 將123 % 10 得到3,再將123 / 10
  • 將12 % 10 得到2,再將12 / 10
  • 將1 % 10 得到1,再將1 / 10

這么看起來(lái),一個(gè)循環(huán)就搞定了,循環(huán)的判斷條件是x>0

但這樣不對(duì),

  • 因?yàn)楹雎粤?負(fù)數(shù)
  • 循環(huán)的判斷條件應(yīng)該是while(x!=0),無(wú)論正數(shù)還是負(fù)數(shù),
  • 按照上面不斷的/10這樣的操作,最后都會(huì)變成0,所以判斷終止條件就是!=0
  • 有了取模和除法操作,對(duì)于像12300這樣的數(shù)字,也可以完美的解決掉了。

看起來(lái)這道題就這么解決了,但請(qǐng)注意,題目上還有這么一句

假設(shè)我們的環(huán)境只能存儲(chǔ)得下 32 位的有符號(hào)整數(shù),則其數(shù)值范圍為 [−2^31, 2^31 − 1]。

也就是說(shuō)我們不能用long存儲(chǔ)最終結(jié)果,而且有些數(shù)字可能是合法范圍內(nèi)的數(shù)字,但是反轉(zhuǎn)過(guò)來(lái)就超過(guò)范圍了。

假設(shè)有1147483649這個(gè)數(shù)字,它是小于最大的32位整數(shù)2147483647的,

但是將這個(gè)數(shù)字反轉(zhuǎn)過(guò)來(lái)后就變成了9463847411,

這就比最大的32位整數(shù)還要大了,這樣的數(shù)字是沒(méi)法存到int里面的,所以肯定要返回0(溢出了)。

甚至,我們還需要提前判斷

2.jpg

上圖中,綠色的是最大32位整數(shù)

第二排數(shù)字中,橘子的是5,它是大于上面同位置的4,這就意味著5后跟任何數(shù)字,都會(huì)比最大32為整數(shù)都大。

所以,我們到【最大數(shù)的1/10】時(shí),就要開(kāi)始判斷了

  • 如果某個(gè)數(shù)字大于 214748364那后面就不用再判斷了,肯定溢出了。
  • 如果某個(gè)數(shù)字等于 214748364呢,這對(duì)應(yīng)到上圖中第三、第四、第五排的數(shù)字,
  • 需要要跟最大數(shù)的末尾數(shù)字比較,如果這個(gè)數(shù)字比7還大,說(shuō)明溢出了。

對(duì)于負(fù)數(shù)也是一樣的

3.jpg

上圖中綠色部分是最小的32位整數(shù),同樣是在【最小數(shù)的 1/10】時(shí)開(kāi)始判斷

  • 如果某個(gè)數(shù)字小于 -214748364說(shuō)明溢出了
  • 如果某個(gè)數(shù)字等于 -214748364,還需要跟最小數(shù)的末尾比較,即看它是否小于8。

以上就是python簡(jiǎn)單實(shí)現(xiàn)整數(shù)反轉(zhuǎn)的畫(huà)解算法的詳細(xì)內(nèi)容,更多關(guān)于python整數(shù)反轉(zhuǎn)的畫(huà)解算法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python切割圖片的示例

    python切割圖片的示例

    這篇文章主要介紹了利用python切割圖片的示例,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下
    2020-11-11
  • Python unittest生成測(cè)試報(bào)告過(guò)程解析

    Python unittest生成測(cè)試報(bào)告過(guò)程解析

    這篇文章主要介紹了Python unittest生成測(cè)試報(bào)告過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 使用Python實(shí)現(xiàn)獲取文件詳細(xì)信息

    使用Python實(shí)現(xiàn)獲取文件詳細(xì)信息

    Python提供了豐富的內(nèi)置模塊和函數(shù),獲取和操作文件的各種屬性信息,比如大小、修改時(shí)間、權(quán)限以及路徑等,本文將通過(guò)詳細(xì)的示例代碼展示如何使用Python中的os和os.path模塊來(lái)獲取文件屬性信息,需要的可以參考下
    2023-12-12
  • Numpy 多維數(shù)據(jù)數(shù)組的實(shí)現(xiàn)

    Numpy 多維數(shù)據(jù)數(shù)組的實(shí)現(xiàn)

    這篇文章主要介紹了Numpy 多維數(shù)據(jù)數(shù)組的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Django用戶認(rèn)證系統(tǒng)如何實(shí)現(xiàn)自定義

    Django用戶認(rèn)證系統(tǒng)如何實(shí)現(xiàn)自定義

    這篇文章主要介紹了Django用戶認(rèn)證系統(tǒng)如何實(shí)現(xiàn)自定義,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python經(jīng)緯度坐標(biāo)轉(zhuǎn)換為距離及角度的實(shí)現(xiàn)

    Python經(jīng)緯度坐標(biāo)轉(zhuǎn)換為距離及角度的實(shí)現(xiàn)

    這篇文章主要介紹了Python經(jīng)緯度坐標(biāo)轉(zhuǎn)換為距離及角度的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 細(xì)數(shù)nn.BCELoss與nn.CrossEntropyLoss的區(qū)別

    細(xì)數(shù)nn.BCELoss與nn.CrossEntropyLoss的區(qū)別

    今天小編就為大家整理了一篇細(xì)數(shù)nn.BCELoss與nn.CrossEntropyLoss的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • 利用Python爬蟲(chóng)爬取金融期貨數(shù)據(jù)的案例分析

    利用Python爬蟲(chóng)爬取金融期貨數(shù)據(jù)的案例分析

    從技術(shù)角度來(lái)看,經(jīng)過(guò)一步步解析,任務(wù)是簡(jiǎn)單的,入門requests爬蟲(chóng)及入門pandas數(shù)據(jù)分析就可以完成,本文重點(diǎn)給大家介紹Python爬蟲(chóng)爬取金融期貨數(shù)據(jù)的案例分析,感興趣的朋友一起看看吧
    2022-06-06
  • python實(shí)現(xiàn)簡(jiǎn)易動(dòng)態(tài)時(shí)鐘

    python實(shí)現(xiàn)簡(jiǎn)易動(dòng)態(tài)時(shí)鐘

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)易動(dòng)態(tài)時(shí)鐘,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • python實(shí)現(xiàn)猜數(shù)字游戲(無(wú)重復(fù)數(shù)字)示例分享

    python實(shí)現(xiàn)猜數(shù)字游戲(無(wú)重復(fù)數(shù)字)示例分享

    這篇文章主要介紹了python實(shí)現(xiàn)猜數(shù)字游戲(無(wú)重復(fù)數(shù)字)示例,需要的朋友可以參考下
    2014-03-03

最新評(píng)論