题意
解题思路:
通过取整和取余操作获取整数中对应的数字进行比较。
- 举个例子:121 这个数字
- 通过计算 121 % 10,得末位1
- 通过计算 121 / 10,可得首位 12
- 再将12继续比较 => 12 % 10 = 2, 12 / 10 = 1,最后得到121
PHP代码实现:
class Solution {
/**
* @param Integer $x
* @return Boolean
*/
function isPalindrome($x) {
return ($x < 0 || $x - $this->rev($x) != 0) ? false : true;
}
function rev($num) {
$rev = 0;
while ($num >= 1) {
$pop = $num % 10;
$num = $num / 10;
$rev = $rev * 10 + $pop;
}
return $rev;
}
function isPalindrome1($x) {
$x = strval($x);
$len = strlen($x);
$mid = floor($len >> 1);
for ($i = 0; $i < $mid; $i ++) {
if ($x[$i] != $x[$len - $i - 1]) return false;
}
return true;
}
}
GO代码实现:
func isPalindrome(x int) bool {
var str = strconv.Itoa(x)
if x < 0 {
return false
}
for i := range str {
if str[len(str)-1-i] != str[i] {
return false
}
}
return true
}