Letcode 整數反轉

2021-10-09 01:37:16 字數 1623 閱讀 9047

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

示例 1

:輸入:

123輸出:

321示例 2

:輸入:

-123

輸出:-

321示例 3

:輸入:

120輸出:

21注意:

假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231

,231 − 1

]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。

普遍的思路,新建乙個陣列反過來存,簡單除暴,但是效率和記憶體消耗大
class

solution

char

str = integer.

tostring

(x).

tochararray()

;char

newstr;

if(x <0)

}else

}else}}

long y = long.

parselong

(string.

valueof

(newstr));

if( y<

-2147483648

|| y>

2147483647

)return integer.

parseint

(long.

tostring

(y));}

}

結果

結果可以看出,雖然解決了問題但是效率並不客觀。

經過研究和思考,下面的方法更好,我們要考慮一下怎麼取最後乙個數字

例如:12345 怎麼取5 ==> 1234怎麼取4 ==> 123 怎麼取3

由圖可見:我們取模就可以了,可以看出**簡潔了很多。

class

solution

res = res*

10+ tmp;

x /=10

;}return res;

}}

具體的執行邏輯:

x=12345

第一次:tmp =

5 res =

5 x =

1234

第二次:tmp =

4 res =

54 x =

123第三次:tmp =

3 res =

543 x =

12第四次:tmp =

2 res =

5432 x =

1第五次:tmp =

1 res =

54321 x =

0

執行結果

結果的確讓人很滿意

letcode 第二題 數字反轉

整數反轉 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。class solution def reverse self,x int int if 10 x 10 return x str x str x if str x 0 str x str x 1 x int str ...

lintcode反轉整數

反轉整數 將乙個整數中的數字進行顛倒,當顛倒後的整數溢位時,返回 0 標記為 32 位整數 您在真實的面試中是否遇到過這個題?yes 樣例給定x 123,返回321 給定x 123,返回 321 標籤 相關題目 本題採用數學計算法而不是文字翻轉,所以末尾為0的翻轉不用考慮。坑就是要考慮溢位啊!一開始...

7 整數反轉

鏈結 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321示例2 輸入 123 輸出 321示例 3 輸入 120 輸出 21注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後...