题目大意:反转一个int型的整数。
需要注意的地方:1.负号符号位置保持不变;2.翻转后溢出的问题。
思路:先把符号位独立出来;用long型保留转换后的结果,再添加符号位,再与INT_MAX和INT_MIN比较,溢出返回0;
结果:4ms,击败61.68%。
代码:
#include
int reverse(int x) {
long y=0;
int pos;
pos=(x>0)?1:-1;
x=pos*x;
while(x>0){
y=y*10+x%10;
x=x/10;
}
y=pos*y;
if(y>INT_MAX||y