题目描述
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121输出: true
示例 2:
输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。
进阶:
你能不将整数转为字符串来解决这个问题吗?
个人解法
Java
JavaScript
日常暴力解题。。。
/*** @param {number} x* @return {boolean}*/var isPalindrome = function(x) {if(x == 0){return true;}else if(x < 0 || x % 10 == 0){return false;}else if(x < 10){return true;}var temp = x;var a = 0;while(temp){a = a * 10 + temp % 10;temp = parseInt(temp / 10);}if(a == x){return true;}else{return false;}};
更优解法
Java
JavaScript
/*** @param {number} x* @return {boolean}*/var isPalindrome = function(x) {if (x == 0) {return true;} else if (x < 0 || x % 10 == 0) {return false;} else if (x < 10) {return true;}let revertedNumber = 0;while (x > revertedNumber) {revertedNumber = revertedNumber * 10 + x % 10;x = Math.floor(x / 10);}return x === revertedNumber || x === Math.floor(revertedNumber / 10);};
