PHP算法之回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例 1:

输入: 121

输出: true

示例 2:

输入: -121

输出: false

解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:

输入: 10

输出: false

解释: 从右向左读, 为 01 。因此它不是一个回文数。

进阶:

你能不将整数转为字符串来解决这个问题吗?

来源:力扣(LeetCode)

1.这个转为字符串处理

class Solution {

/**

* @param Integer $x

* @return Boolean

*/

function isPalindrome($x) {

$len = strlen($x);

$str = strrev($x);

if($len > 0 && $str == $x){

return true;

}

return false;

}

}

数学计算

class Solution {

/**

* @param Integer $x

* @return Boolean

*/

function isPalindrome($x) {

//边界判断

if ($x < 0) return false;

$i = 1;

while ($x / $i >= 10){

$i *= 10;

}

if($x > 99){

while ($x > 1) {

$left = intval($x / $i);

$right = $x % 10;

if ($left != $right) return false;

$x = ($x % $i) / 10;

$i = $i/100;

}

}else{

$left = intval($x / $i);

$right = $x % 10;

if ($left != $right) return false;

}

return true;

}

}