LeetCode之整數反轉
阿新 • • 發佈:2019-01-13
整數反轉
給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:
假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
方法一:
public int reverse(int x) {
String code = String.valueOf(x);
boolean code_tmp = false;
if(code.startsWith("-")) {
code_tmp = true;
code = code.substring(1);
}
long new_code = Long.parseLong(new StringBuffer(code).reverse().toString());
if(new_code > Integer.MAX_VALUE || new_code < Integer.MIN_VALUE) {
return 0;
}
int codes = (int)new_code;
return code_tmp ? 0 - codes : codes;
}
方法二:
public int reverse(int x) {
long result=0;
int flag = 1;
if (0 > x){
flag = -1;
x *= (-1);
}
while (0 < x) {
result = result * 10 + x % 10;
x /= 10;
}
if (result > Integer. MAX_VALUE) result = 0;
return (int)result*flag;
}