Description:
Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123
Output: 321
Solution:
思路:因为是逆序,可以考虑到使用 Queue,先进先出。
PS:由于这道题目要求int类型overflow后return 0,所以需要用double来判断是否符合要求
int reverse(int x) {
Queue<Integer> queue = new LinkedList<>();
while(x >= 10 || x <= -10) {
queue.offer(x % 10);
x = x / 10;
}
queue.offer(x);
double sum = 0;
while(!queue.isEmpty())
sum = sum * 10 + queue.poll();
if(sum > Math.pow(2, 31) - 1 || sum < -Math.pow(2, 31))
return 0;
return (int) sum;
}