目录

  • 1. 字符串的转换

    • 1.1 简单点,使用高阶函数来完成
    • 1.2 从后往前循环字符串数组
    • 1.3 以中间数为节点,判断左右两边首尾是否相等
  • 2. 数字转换
    • 2.1 求模得尾数,除10得整数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如:

121,是回文数。
1221, 是回文数。
1234,不是回文数。
-121,也不是回文数。

一些特殊的情况:

  • 0-9的数字,都可以称为回文。
  • 不等于0,且尾数是0的数字,都不是回文。
  • 负数都不是回文。

1. 字符串的转换

1.1 简单点,使用高阶函数来完成

思路: 先将数字转成字符串A,再经过变成数组,数组反转,数组变成字符串B三步操作之后,比较字符串A和B,得出结论。

/*** @param {number} x* @return {boolean}*/
var isPalindrome = function(x) {if ( x < 0 ) return falselet str = '' + xreturn Array.from(str).reverse().join('') === str
};

1.2 从后往前循环字符串数组

思路:将数字转换成字符串A,从后往前循环字符串A,将循环出来的字符拼接成新的字符串B,比较字符串A和B,得出结论。

/*** @param {number} x* @return {boolean}*/
var isPalindrome = function(x) {let str = x + ''let newStr = ''for(let len = str.length, i = len - 1; i >= 0 ; i--) {newStr += str[i]}}return newStr === str
};

1.3 以中间数为节点,判断左右两边首尾是否相等

/*** 以中间数为节点,判断左右两边首尾是否相等* @param {number} x* @return {boolean}*/
var isPalindrome = function(x) {if ( x < 0 || (x !== 0 && x % 10 === 0)) {return false} else if ( 0 <= x && x < 10) {return true}x = '' + xfor(let i = 0 ; i < x.length/2; i++) {if (x[i] !== x[x.length - i - 1]) {return false}}return true
};

2. 数字转换

2.1 求模得尾数,除10得整数

思路: 先判断一些特殊情况【小于0的、尾数为0的、小于10的正整数】。之后,将整数反转,反转前后两个整数是否相等来判断是否为回文整数。
这里的反转:将整数求模得到尾数,之后每求一次模,都再原数上添加一位(通过*10来得到),这样就能得到一个反转的数。
计算需要求模的次数: 将整数除10,来计算求模的次数。Math.floor() 返回小于或等于一个给定数字的最大整数。

/*** 求模得尾数,除10得整数* @param {number} x* @return {boolean}*/
var isPalindrome = function(x) {if ( x < 0 || (x !== 0 && x % 10 === 0)) {return false} else if ( 0 <= x && x < 10) {return true}let y = xlet num = 0while(x !== 0) {num = x % 10 + num * 10x = Math.floor(x / 10)}return y === num
};

以上即是回文数的判断方法,如有其它方法,可以补充。

转载于:https://www.cnblogs.com/weiqinl/p/10968659.html

js回文数的四种判断方法相关推荐

  1. python判断回文数字,Python判断回文数的三种方法实例

    需求: 从控制台输入一个五位数,如果是回文数就打印"是回文数",否则打印"不是回文数",例如:11111 12321 12221 "回文"是 ...

  2. 打印水仙花数oracle,javaScript实现回文数、水仙花数判断和输出斐波那契数列

    javaScript实现回文数.水仙花数判断和输出斐波那契数列 发布时间:2020-07-22 01:15:37 来源:51CTO 阅读:422 作者:Cynthia_xie // 判断一个数是不是回 ...

  3. 回文数java_回文数及JAVA编程判断回文数

    自然数中还有一类数被称为回文数.回文数就是一个数的两边对称,如11,121,1221,9339,30203等等.回文数本身倒也没有什么奇特.不过人们发现大多数的自然数,如果把它各位数字的顺序倒置,再与 ...

  4. 怎样判断计算机硬盘损坏,检测硬盘是否损坏的方法来了,这里有四种判断方法!...

    原标题:检测硬盘是否损坏的方法来了,这里有四种判断方法! 大家对硬盘都不陌生,硬盘分固态硬盘与机械硬盘,它们的读取速度与容量都有很大的区别,不过都是可以用来存储系统与重要文件数据的.硬盘损坏是电脑的硬 ...

  5. 回文字符串的两种判别方法(c语言)

    C语言判别回文字符的两种简单方法 文章目录 C语言判别回文字符的两种简单方法 一.回文字符串的概念 二.介绍两种判别回文字符串的方法 1.将需要判别的字符串倒序排列再与原字符串对比 2. 通过指针锁定 ...

  6. 【Python】判断一个整数是否是回文数的三种方法

    方法一:逐位判断 原理: 用一个while循环,将一个数每次都取出首位和末位,判断是否相等,只要有一次不相等退出即可. 回文数的判断条件:加入一个变量位数,如果这个数是奇数,位数为1时,即最中间那一位 ...

  7. 判断回文数的两种解法

    一.首先什么是回文数呢? "回文"是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如"我为人人,人人为我"等.在数学中也有这样一类数字有这 ...

  8. 实现不使用乘、除、取余运算求商和余数及回文数的定义及判断

    我们不妨先复习一下小学二年级学过的除法的定义:被除数/除数=商 ,这是我们在小学时经常用到的算法.现在,我们仔细在想一下,除法的本质到底是什么?我们假设一共有12块糖,分给四个小孩,这时你就会浮现出一 ...

  9. mn之间的回文数c语言,c语言描述回文数的三种算法

    题目描述 注意:(这些回文数都没有前导0) 1位的回文数有0,1,2,3,4,5,6,7,8,9 共10个: 2位的回文数有11,22,33,44,55,66,77,88,99 共9个: * 请问:n ...

最新文章

  1. DEDECMS中Showmsg的用法及参数介绍
  2. Codeup-问题 C: 最短路径
  3. python学习高级篇(part6)--内置函数dir
  4. javascript系列之执行上下文
  5. TypeScript 官方决定全面采用 ESLint
  6. 模拟新浪新闻在线聊天功能
  7. 【cocos2d-x从c++到js】10:JS与C++的交互2——JS与C++的“函数重载”问题
  8. ll文件显示为?????_关于shell编程中的文件测试简单的操作实例
  9. chrome老版本_技术周刊 2019-08-06:Chrome 又隐藏了 www
  10. 交叉火力dsp手机调音软件_可一键调音的车载DSP功放应用
  11. 课设错误调试(一)No qualifying bean of type
  12. 在线制作FLASH,图片的网站集合
  13. 无限复活服务器,绝地求生刺激战场无限复活模式怎么玩 无限复活玩法攻略分享...
  14. CSS3可爱的100卡通笑脸动画
  15. vue路由跳转动画_vue怎么给路由切换时添加动画
  16. 计算机硬盘储存怎么增加,如何扩大存储空间?电脑扩大新添加的硬盘的方法
  17. 遭七旬叔公欺负长达八年 17岁女孩怀孕5个月
  18. Java 多线程 卖票
  19. UVA 12563 Jin Ge Jin Qu hao 01背包变形
  20. 斯坦福php项目怎么样,科学网—发现自己的论文居然成了斯坦福大学的课程项目 - 杨双的博文...

热门文章

  1. mysql enterprise backup 使用_mysql enterprise backup入门使用
  2. 2018蓝桥C++B:煤球数目;生日蜡烛(枚举年龄和枚举次数)
  3. bzoj 3517: 翻硬币
  4. 51nod-1422:沙拉酱前缀
  5. 吴恩达神经网络和深度学习-学习笔记-11-Momentum梯度下降法
  6. iptable详解概念
  7. MySQL(一)面试集合
  8. Core官方DI解析(3)-ServiceCallSite.md
  9. P1279 字串距离 (动态规划)
  10. 三.rocketmq-console