題目描述:
給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:
假設我們的環境只能存儲得下 32 位的有符號整數,則其數值範圍爲 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢出那麼就返回 0。
分析:
int型的數反轉後可能會溢出,因此創建一個long類型的變量來保存反轉後的整數。
代碼:
class Solution {
public int reverse(int x) {
long y=0;
int flag=0;
if(x<0){
flag=1;
x=-x;
}
while(x>0){
y=y*10+x%10;
x=x/10;
}
if(flag==1)
y=-y;
if(y<Integer.MIN_VALUE||y>Integer.MAX_VALUE)
y=0;
return (int)y;
}
}