整數(shù)反轉(zhuǎn)

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

示例?1:

輸入:123輸出:321

?示例 2:

輸入:-123輸出:-321

示例 3:

輸入:120輸出:21

注意:

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


讀題?。。?/p>

給一個整數(shù),返歸這個整數(shù)的倒序,

第一個問題,如何調(diào)換Int類型的某位數(shù)字的位置,int類型不能遍歷,所以將它變成一個可以遍歷的類型,最容易的就是str。直接str(x)


字符串類型沒有任何問題。

然后就是反轉(zhuǎn)字符串,剛看到別人用reverse()反轉(zhuǎn),試一下,果然報錯,只能用于字符串?。。∏杏?/p>

用[::-1],沒有任何問題,除了符號,那就做一個正負(fù)判斷,

負(fù)數(shù)這里處理有一些麻煩,首先要保留負(fù)號,str(x)[0]

對后面的進(jìn)行反轉(zhuǎn),這里應(yīng)該是用[:0:-1],,而不是[1::-1](有些問題?。。。。?/p>

(有許多問題?。。。。?/p>



步長為正一直沒有問題,為負(fù)數(shù)還是有許多問題。

如【::-1】是很正常的倒序操作,起始和結(jié)束這里默認(rèn)是什么我研究兩天了,寫了刪,刪了寫。


無論開頭結(jié)尾是0或-4都達(dá)不到默認(rèn)值的效果。

找了許多解釋,終于找到答案,步長為起始負(fù)數(shù)默認(rèn)為-1,終點索引值為負(fù)的長度減1。

起點包括該索引值,終點不包括該索引值,所以還要加減一。【-1,-len(a)-1:-1】


一個值對應(yīng)兩個索引值,這里0789,索引值為0 1 2 3 也可以為-1 -2 -3 -4。

所以當(dāng)我們發(fā)現(xiàn)-1時少一位選用0結(jié)果還不是需要的。


講解一下步長為負(fù)數(shù)的重點吧,步長為負(fù)數(shù)從右向左,所以先找右面的起始位,再找到左邊的結(jié)束位,起始位包括該索引值,結(jié)束位不包括該索引值。任何值都有兩個索引值,用正數(shù)負(fù)數(shù)的都可以,混著用沒事,能看明白就行。

這里我們需要倒序舍去第一位,那就應(yīng)該是【-1:-len(a):-1】

這里-1表示從最后一位開始,包括最后一位,-len(a)表示第一位,但是不包括一位。

表示第一位的還有0,0放在站點位表示不包括第一位?!荆?:-1】


兩天了我終于弄明白了我瞎敲的這個為什么好使了。



看一下示例,給120,返回12,0被舍除了,很簡單,要求返回一個int型,int(str)就會將0自動省去。

還有最后一個問題,長度限制32位,反轉(zhuǎn)后溢出返回0,注意是反轉(zhuǎn)后,所有再裝換為int型去0后還需要轉(zhuǎn)成字符串判斷長度在返回int型。


依照這個思路寫下去。

測試用例基本通過了,這個告訴我們應(yīng)該返回0,

讀題:


通過,沒什么問題!結(jié)束啦

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容