给定一个 32 位有符号整数,将整数中的数字进行反转。
public int reverseInteger(int x) {
if (x <= Integer.MIN_VALUE || x >= Integer.MAX_Value) {
return 0; // 如果输入的整数超出范围,直接返回 0
}
int reversedNum = 0; // 用于存储反转后的整数
int count = 0; // 用于记录反转过程中的位数
while (x != 0) { // 循环反转每一位数字
count++; // 位数递增
if (count == 10) { // 如果反转过程中位数达到上限(即反转后的数可能溢出)
if (x < 0 && reversedNum >= Integer.MAX_VALUE / 10) { // 如果是负数且反转后的数即将溢出,返回 0
return 0;
}
}
reversedNum = reversedNum 10 + x % 10; // 将当前位加入反转结果中
x /= 10; // 移动到下一位数字进行反转操作
}
return reversedNum; // 返回反转后的整数结果
}
文章从网络整理,文章内容不代表本站观点,转账请注明【蓑衣网】