Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321java
輸入一個整數對其進行翻轉git
經過求餘數求商法進行操做。算法
public class Solution { public int reverse(int x) { long tmp = x; // 防止結果溢出 long result = 0; while (tmp != 0) { result = result * 10 + tmp % 10; tmp = tmp / 10; } // 溢出判斷 if (result < Integer.MIN_VALUE || result > Integer.MAX_VALUE) { result = 0; } return (int) result; } }
第一種方法:app
[java] view plain copy函數
思路:spa
(1)這道算法題屬於OJ中比較簡單的題目。題意是將給定的整數逆序,可是涉及到幾種特殊狀況須要考慮。.net
(2)爲了便於處理,將整數轉爲字符串。咱們只須要遍歷一次該字符串便可。code
(3)在遍歷的過程當中,須要對正負數進行判斷,當字符串長度大於0時,先取第一個字符進行判斷,看其是否等於‘-’,若是相等blog
就是負數,須要設置一個標誌位。ip
(4)在繼續遍歷的過程當中,只需判斷字符是否爲數字(顯然都是),而後經過標誌位判斷正負後進行累加操做。
(5)須要注意的時,翻轉後的的整數可能會超過int的最大值,爲了防止越界,咱們定義的sun的類型必須爲long,這樣當大於或
者小於int的最大值和最小值時就返回0;其他狀況直接將long強轉爲int,並返回結果。
(6)注意上述幾個方面後,OJ經過確定沒問題。
算法實現代碼以下所示(但願對你有所幫助,謝謝):
[java] view plain copy
第二種方法:
[java] view plain copy