题目说明
1 | 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 |
解题思路一(字符串反转)
- 第一反应数字转字符串,然后前后对比。可以解决问题。
代码实现一
1 | /** |
解题思路二(求得x的位数,xLen = Math.log10(x))
- 求得长度,接下来跟字符串一样了。
- parseInt(x / Math.pow(10, xLen)) 得到首位
- x % 10 得到尾位
- 对比是否相等
代码实现二
1 | /** |
解题思路三(反转尾部)
- 这个是官方题解,反转尾部,直到前半部分小于等于反转后的尾部
- 将x的尾部移出来,反转。一直到x剩下的前半部分等于或者小于反转的尾部。
- 前半部分小于尾部,说明到了x的中间位。
- 跳出循环时,回文数只有两种情况。
- 第一种,x为偶数,直接判断首尾是否相同。
- 第二种,x为奇数,尾部除以10,再进行判断。
代码实现三
1 | /** |