題目:
給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
注意:假設我們的環境只能存儲得下 32 位的有符號整數,則其數值範圍爲 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢出那麼就返回 0。
思路:
將該數轉換爲char數組,判斷該整數是否是負數,如果是那麼需要反轉的就是1~length-1,不是負數就需要反轉0~length-1;,每次進行判斷是否超界。
代碼如下:
class Solution {
public int reverse(int x) {
String s = String.valueOf(x);
char[] ch = s.toCharArray();
int result = 0;
int length = ch.length;
if (x<0){
while (length-- > 1){
if (-result < (Integer.MIN_VALUE+(ch[length]-'0'))/10){
return 0;
}else{
result = result*10+ch[length]-'0';
}
}
result*=-1;
}else{
while(length-- > 0){
if (result > (Integer.MAX_VALUE-(ch[length]-'0'))/10){
return 0;
}else{
result = result*10+ch[length]-'0';
}
}
}
return result;
}
}