题意

image.png

解题思路:

通过取整和取余操作获取整数中对应的数字进行比较。

  • 举个例子:121 这个数字
  • 通过计算 121 % 10,得末位1
  • 通过计算 121 / 10,可得首位 12
  • 再将12继续比较 => 12 % 10 = 2, 12 / 10 = 1,最后得到121

PHP代码实现:

  1. class Solution {
  2. /**
  3. * @param Integer $x
  4. * @return Boolean
  5. */
  6. function isPalindrome($x) {
  7. return ($x < 0 || $x - $this->rev($x) != 0) ? false : true;
  8. }
  9. function rev($num) {
  10. $rev = 0;
  11. while ($num >= 1) {
  12. $pop = $num % 10;
  13. $num = $num / 10;
  14. $rev = $rev * 10 + $pop;
  15. }
  16. return $rev;
  17. }
  18. function isPalindrome1($x) {
  19. $x = strval($x);
  20. $len = strlen($x);
  21. $mid = floor($len >> 1);
  22. for ($i = 0; $i < $mid; $i ++) {
  23. if ($x[$i] != $x[$len - $i - 1]) return false;
  24. }
  25. return true;
  26. }
  27. }

GO代码实现:

  1. func isPalindrome(x int) bool {
  2. var str = strconv.Itoa(x)
  3. if x < 0 {
  4. return false
  5. }
  6. for i := range str {
  7. if str[len(str)-1-i] != str[i] {
  8. return false
  9. }
  10. }
  11. return true
  12. }