LeetCode 7. Reverse Integer 一個整數倒敘輸出

潛在問題:(1)隨着求和可能精度會溢出int 範圍,須要使用long 來輔助判斷是否溢出,此時返回 0this

               Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,  231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.spa

               (2)去前綴0code

eg: reverse(1534236469); 會丟精度,若是不校驗 因此WA了一次blog

 

int reverse(int x) {
    long sumLong = 0;
    int sum = 0;
    int num =  0;
    while (x!= 0) {    //支持正負數
        num = x % 10;  //末尾數字
        sum = sum * 10;//進位
        sum += num;
        x = x / 10;
        //校驗精度
        sumLong = sumLong * 10;
        sumLong += num;
        if (sumLong != sum) {
            sum = 0;
            break;
        }
    }
    return sum;
}
相關文章
相關標籤/搜索