LeetCode题解:整数反转
2022-03-03 本文已影响0人
搬码人
题目描述
给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。
如果反转后整数超过32位的有符号整数的范围,就返回0。
示例
- 示例1
输入:x=123
输出:x=321 - 示例2
输入:x=-123
输出:x=-321 - 示例3
输入:x=120
输出:x=21
实现思路
利用%与/这俩运算符的特性实现数字组合的“弹出”与“存入”。
class Solution {
public int reverse(int x) {
int result = 0;
int max = Integer.MAX_VALUE/10;
int min = Integer.MIN_VALUE/10;
while(x!=0){
if(result < min||result > max){
return 0;
}
int digit = x%10;
x /=10;
result = result*10+digit;
}
return result;
}
}
复杂度分析
- 时间复杂度:O(log|x|),翻转的次数即x十进制的位数。
- 空间复杂度:O(1)。