题目描述

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

示例 1:

  1. 输入: 121
  2. 输出: true

示例 2:

  1. 输入: -121
  2. 输出: false
  3. 解释: 从左向右读, -121 从右向左读, 121- 。因此它不是一个回文数。

示例 3:

  1. 输入: 10
  2. 输出: false
  3. 解释: 从右向左读, 01 。因此它不是一个回文数。

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

题解

循环使用 % 和 / 即可。

  1. public bool IsPalindrome(int x)
  2. {
  3. if (x < 0) return false;
  4. var reverse = 0;
  5. var num = x;
  6. while (num > 0)
  7. {
  8. reverse = reverse * 10 + num % 10;
  9. num /= 10;
  10. }
  11. return x == reverse;
  12. }