给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。

class Solution {
public:
int reverse(int x) {
int i=0,j=0,l=0,k=0;
int sum=0;
int*p=new int[i];
int*q=new int[j];
while(x<0){
*(p+i)=x%10;
i++;
x=x%10;
}
for(k;k<i;i--){
*(q+k)=*(p+i);
k++;
}
for(l;l<k;l++)
sum+=*(q+l)*pow(10,l);
if(sum<pow(-2,31)||sum>pow(2,31)-1)
return 0;
else
return sum;
}
};

该博客讨论了一个C++实现的解决方案,用于反转一个32位有符号整数,并检查反转后是否超出32位整数的范围。代码通过逐位反转并使用幂运算来构造反转后的数,同时进行溢出检查,确保结果在[-2^31, 2^31-1]之间。
6万+

被折叠的 条评论
为什么被折叠?



