Reverse digits of an integer.
反轉整數數字。
Example1: x = 123, return 321
Example2: x = -123, return -321
需要注意的問題:整數的最低位是0,如10100.以及反轉的數字可能溢出。
解:
反轉一個數字就是循環的除以10,得到的余數是最低位,是我們返回的結果的最高位。這種解法對于10100這種情況依舊使用,為了防止溢出則需要一個判斷語句。代碼如下(C++):
class Solution { public: int reverse(int x) { int result = 0; while (x != 0){ if (INT_MAX / 10 < result||INT_MIN/10>result){ result = 0; break; } else{ result = result * 10 + x % 10; } x /= 10; } return result; } };
顯然時間復雜度為O(n),空間復雜度為O(1).