共计 447 个字符,预计需要花费 2 分钟才能阅读完成。
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;
}
正文完