题目描述:
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数
算法实现:
JavaScript
/**
* @param {number} x
* @return {boolean}
*/
var isPalindrome = function(x) {
if (x < 0) {
return false
} else if (x >= 0) {
var flag = 1
var help = x
while (help >= 10) {
flag *= 10
help = parseInt(help / 10)
}
while (x != 0) {
if (x % 10 != parseInt(x / flag)) {
return false
}
x = parseInt(x % flag / 10)
flag = parseInt(flag / 100)
}
return true
}
};
思路:
小于0的均不是回文数,在大于等于0的情况下,通过首位和末位的相等对比进行判断是否为回文数,由此可以通过循环的方式逐层进行比较。
总结:
需要注意parseInt()方法在本题中的运用,在提取首位数字和末尾数字的时候应该思考严密,防止出错。