【LeetCode 9】回文数
题目描述
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
进阶:
你能不将整数转为字符串来解决这个问题吗?
解题思路
最直接的方法就是将数字转化为字符串,翻转之后再和原来的数字进行对比。
另外一种方法就是,使用%10 的while结合的方法对数字进行翻转,在进行对比
代码实现
第一种方法:转为字符串:
/** * @param {number} x * @return {boolean} */
var isPalindrome = function(x) {
return x.toString() == x.toString().split("").reverse().join("");
};
第二种方法:翻转
/** * @param {number} x * @return {boolean} */
var isPalindrome = function(x) {
let s = 0;
let x1 = x;
while (x1 > 0) {
s = s * 10 + x1 % 10;
x1 = parseInt(x1 / 10);
}
return s == x;
};
提交结果
第一种方法提交结果:
第二种方法提交结果:
还没有评论,来说两句吧...