【算法-LeetCode】9. 回文数(数组方法)

9. 回文数 - 力扣(LeetCode)

发布: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

/**
 * @param {number} x
 * @return {boolean}
 */
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

你可能感兴趣的:(LeetCode,leetcode,算法,数组,回文,javascript)