发布:2021年9月30日20:40:13
问题描述及示例
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例 1: 输入:x = 121 输出:true 示例 2: 输入:x = -121 输出:false 解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入:x = 10 输出:false 解释:从右向左读, 为 01 。因此它不是一个回文数。 示例 4: 输入:x = -101 输出:false
提示: -231 <= x <= 231 - 1 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/palindrome-number 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
我的题解
我的题解1(数组方法)
总体思路就是先将 x 转为字符串 numStr ,然后开始遍历 numStr (注意只需要遍历到 numStr 的中点位置即可),并且判断当前遍历字符 numStr[i] 与 numStr[numStr.length-1-i] 是否相等,如果不相等,则立马返回 false ,否则继续向下遍历,直至遍历完成,如果都满足 numStr[i] === numStr[numStr.length-1-i] ,那么则说明当前数字 x 为回文数。
而且,由题意可知,当 x 小于 0 时,那 x 一定不可能为回文数,直接返回 false 。
var isPalindrome = function(x) {
if(x < 0) {
return false;
}
let numStr = x.toString();
for(let i = 0; i < Math.floor(numStr.length / 2); i++) {
if(numStr[i] !== numStr[numStr.length-1-i]){
return false;
}
}
return true;
};
提交记录
11510 / 11510 个通过测试用例
执行用时:160 ms, 在所有 JavaScript 提交中击败了89.66%的用户
内存消耗:47.1 MB, 在所有 JavaScript 提交中击败了19.92%的用户
时间:2021/09/30 21:13
官方题解
更新:2021年7月29日18:43:21
因为我考虑到著作权归属问题,所以【官方题解】部分我不再粘贴具体的代码了,可到下方的链接中查看。
更新:2021年9月30日21:18:15
参考:回文数 - 回文数 - 力扣(LeetCode)
【更新结束】
有关参考
更新:2021年9月30日21:20:41 参考:String.prototype.split() - JavaScript | MDN
|