Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.
Assume the environment does not allow you to store 64-bit integers (signed or unsigned).
Example 1:
Input: x = 123
Output: 321
Example 2:
Input: x = -123
Output: -321
Example 3:
Input: x = 120
Output: 21
class Solution {
public int reverse(int x){
int result = 0;
while (x != 0){
int tail = x % 10; //取得原先的最後一個數字
int newResult = result * 10 + tail;
if ((newResult - tail) / 10 != result){ //如果發生溢位,直接return 0
return 0;
}
result = newResult;
x = x / 10;
}
return result;
}
}
Time: O(log|x|) Space: O(1)