給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123示例 2:輸出: 321
輸入: -123示例 3:輸出: -321
輸入: 120問題分析看到這道題可能我們最容易想到的是先把他轉化為乙個字串,然後再進行反轉,**如下輸出: 21
public
intreverse
(int x)
第3行是先把他轉化為字串;
第6行再對字串進行反轉;
第8-9行如果反轉之後大於int表示的範圍就返回0;
第10-11行是對符號的處理;
這種也能實現,但效率實在是太低。下面我們就以數字1234為例畫個圖來看一下,如果不轉化為字串該怎麼實現
我們看到上一步的結果在下一步都會先乘以10,然後在加乙個個位數就是當前的值,一直這樣迴圈下去,直到全部反轉為止。大家可能會懷疑,上面圖中分析的是正數,如果是負數該怎麼辦,其實負數也是一樣,大家可以自己畫個圖看一下。上面的圖很容易理解,我們來看下**
public
intreverse
(int x)
return
(int
) res == res ?
(int
) res :0;
}
注意這裡的res是long型別,在第7行的時候,會把它轉化為int型別,如果res的範圍大於int型別表示的範圍,轉化之後是不相等的,直接返回0,如果在int型別表示的範圍內,轉化之後是相等的,返回轉化後的值即可。
384,整數反轉
給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 問題分析看到這道題可能我們最容易想到的是先把他轉化為乙個字串,然後再進行反轉,如下 public intrevers...
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 請根據這個假設,如果反轉後...