7.整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
一、
思路:
首先按照取余,和除的方式,来反转整数int。但是有一个问题就是,就是反转之后的可能会超过整数int的范围。这里提一下就是php没有常量表示32位有符号int的大小,所以就需要自己算
function reverse($x) {
if (!is_int($x)) return 0;
$rev = 0;
$max = pow(2,31)-1;//32位有符号最大整数
$min = -pow(2,31);//32位有符号最小整数
while ($x != 0){
$pop = $x%10;
/**
* php除法会自动转型为double,所以要进行类型转换
* 或者$x = ($x-$pop)/10
*/
$x = (int)($x/10);
$rev = $rev*10 + $pop;
if($rev > $max || $rev < $min){
return 0;
}
}
return $rev;
}