有域名在本机上做网站,seo推广培训资料,莆田seo培训,wordpress分类文章表格显示原题链接
9. 回文数
解题思路
翻转数字 利用循环#xff0c;每次将x右移一位将移出的数字存储到reversed的个位中每次存储前#xff0c;需要将reversed左移一位 判断结果 当原x的长度为偶数#xff0c;翻转后的结果相等当原x的长度为奇数#xff0c;reversed一定比翻转后…原题链接
9. 回文数
解题思路
翻转数字 利用循环每次将x右移一位将移出的数字存储到reversed的个位中每次存储前需要将reversed左移一位 判断结果 当原x的长度为偶数翻转后的结果相等当原x的长度为奇数reversed一定比翻转后的x多一位需要将其向右移动一位后再对比 处理特殊情况 x为负数不是回文数除了0以外的最后一位为0的数字必然不是回文数
示例代码
/*** param {number} x* return {boolean}*/
var isPalindrome function(x) {// x为负数不是回文数if (x 0) {return false}// 除了0以外的最后一位为0的数字必然不是回文数// 如果数字最后一位是0必然是10的倍数取余后为0if (x % 10 0 x ! 0) {return false}// 存储反转后的数字let reversed 0// 翻转x直到xreversed表示翻转结束while (x reversed) {// 每次翻转时将reversed*10表示向左移动一位// 再将x的个位数填充到reversed的个位reversed reversed * 10 (x % 10)// x/10表示x向右移动一位并保留整数x Math.floor(x / 10)}// 翻转后有两种可能性// 1. 当原x的长度为偶数翻转后的结果相等// 2. 当原x的长度为奇数reversed一定比翻转后的x多一位需要将其向右移动一位后再对比return x reversed || Math.floor(reversed / 10) x
};