1. 地址
https://leetcode-cn.com/problems/palindrome-number
2. 思路
- 解法一:转成数组,看一下数组是不是回文数
- 解法二:从尾计算到一半,如果大于前半部分,则不是回文的,要注意是否是奇数位,奇数位的后半部分翻转之后会恒大于前半部分,需要再整除 10
php 里面整除在 php7 版本增加了 intdiv 用来处理整除的情况,否则需要使用 floor 来取整。
3. 代码
class Solution {
/**
* @param Integer $x
* @return Boolean
*/
function isPalindrome($x) {
if (empty($x)) {
return true;
}
if ($x < 0 || $x % 10 == 0) {
return false;
}
$re = 0;
while ($re < $x) {
$re = $re * 10 + $x % 10;
$x = floor($x / 10);
}
return $x == $re || $x == floor($re / 10);
}
}