leetcode[7]整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
C语言代码
int reverse(int x){
int ret=0;
while(x!=0){
if(ret<INT_MIN/10||ret>INT_MAX/10){
return 0;
}
int digit=x%10;
x=x/10;
ret=ret*10+digit;
}
return ret;
}
JS代码
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
let ret=0;
while(x!=0){
const digit=x%10;
x=~~(x/10);//两次按位取反,可以进行强制类型转换为数字
ret=ret*10+digit;
if(ret<(Math.pow(-2,31))||ret>Math.pow(2,31)-1){
return 0;
}
}
return ret;
};