澄海区建设局网站,清远做网站公司,区块链技术开发,如何创建一个公司前端卷算法系列#xff08;二#xff09;
回文数
给你一个整数 x #xff0c;如果 x 是一个回文整数#xff0c;返回 true #xff1b;否则#xff0c;返回 false 。
回文数是指正序#xff08;从左向右#xff09;和倒序#xff08;从右向左#xff09;读都是一样…前端卷算法系列二
回文数
给你一个整数 x 如果 x 是一个回文整数返回 true 否则返回 false 。
回文数是指正序从左向右和倒序从右向左读都是一样的整数。
例如121 是回文而 123 不是。
示例 1
输入x 121 输出true 示例 2
输入x -121 输出false 解释从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3
输入x 10 输出false 解释从右向左读, 为 01 。因此它不是一个回文数。
题目来源力扣LeetCode
解题思路
回文数 回文数其实就是正向和反向读都是一样的那么我们只需要做到两步
数字转换成数组翻转数组然后转化为数组和原本的值对比 /*** param {number} x* return {boolean}*/var isPalindrome function (x) {return String(x).split().reverse().join() x;};console.log(isPalindrome(-121));验证通过那么还有其他办法吗 回文数的解法其实有很多种
这里在介绍一种
反转一半数字 意思是例如 12321 前两个数字和后两个数字比较 12和 21比较如果尾数位奇数情况下最后一位不用比较因为两者最后一位肯定都两相同。 /*** param {number} x* return {boolean}*/var isPalindrome function (x) {// 负数永远不会是回文数if (x 0) {return false}let num 0;while (x num) {num (num * 10) x % 10;x Math.floor(x / 10);}// Math.floor(num / 10)是处理奇数情况 num 2是处理偶数的情况下return x Math.floor(num / 10) || num x;};情况下 return x Math.floor(num / 10) || num x; };