leetCode 7. Reverse Integer (數字反轉) 解題思路與方法
阿新 • • 發佈:2019-01-11
問題:
Reverse Integer
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
本題需要注意的地方在於數字反轉後有可能溢位,所以需要判斷時候溢位,溢位時返回0。
本題用了兩種方法實現,第一種是反轉字串,第二種是直接迴圈讀出末尾資料。
具體解法如下:
字串解法:
直接解法:此法程式碼簡潔易懂,而且效率上要比字串解法要高一些。public int reverse(int x) { String s = x + ""; StringBuffer sb = new StringBuffer(""); if(x < 0){ for(int i = s.length() - 1;i > 0; i--){ sb.append(s.charAt(i)); } try{ int y = Integer.parseInt(sb.toString()); return -1*y; } catch(Exception e){ return 0; } } else{ for(int i = s.length() - 1;i >= 0; i--){ sb.append(s.charAt(i)); } try{ int y = Integer.parseInt(sb.toString()); return y; } catch(Exception e){ return 0; } } }
public int reverse1(int x) {
long result = 0;
while(x != 0){
result = result*10 + x%10;
x /= 10;
}
return (int) (result = result > 2147483647 || result < -2147483648 ? 0 : result);
}