題目
給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:
假設我們的環境只能存儲得下 32 位的有符號整數,則其數值範圍爲 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢出那麼就返回 0。
思路
可以逐個取出輸入數字的末位數字形成新的數字,採取隊列的思想,每次取出了新的末位數字放到新數字的末尾,如下過程:
輸入123
第一次取出3,獲得新數字3
第二次取出2,獲得新數字32
第三次取出1,獲得新數字321,完成了整數反轉.
解題
class Solution {
public int reverse(int x) {
int temp1=0;
while(x!=0){
int temp2=temp1*10 + x%10;
if(temp2 /10 != temp1)
return 0;
temp1 = temp2;
x /= 10;
}
return temp1;
}
}