VIP用户交流群:462197261 收藏本站北冥有鱼 互联网前沿资源第一站 助力全行业互联网+
在线客服:78895949
tonglan
  • 当前位置:
  • js回文数的4种判断方法示例

    前言

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

    例如:

    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 false
      let str = '' + x
      return 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 = '' + x
      for(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 = x
      let num = 0
      while(x !== 0) {
        num = x % 10 + num * 10
        x = Math.floor(x / 10)
      }
      return y === num
    };

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

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对北冥有鱼的支持。

    您可能感兴趣的文章:

    • javascript判断回文数详解及实现代码

    广而告之:
    热门推荐:
    MySQL索引之主键索引

    在MySQL里,主键索引和辅助索引分别是什么意思,有什么区别? 上次的分享我们介绍了聚集索引和非聚集索引的区别,本次我们继续介绍主键索引和辅助索引的区别。 1、主键索引 主键索引,简称主键,原文是PRIMARY KEY,由一个或多个列组成,用于唯一性标识数据表中的某一条记录。···

    html5模拟平抛运动(模拟小球平抛运动过程)

    物体以一定的初速度沿水平方向抛出,如果物体仅受重力作用,这样的运动叫做平抛运动。平抛运动可看作水平方向的匀速直线运动以及竖直方向的自由落体运动的合运动。平抛运动的物体,由于所受的合外力为恒力,所以平抛运动是匀变速曲线运动,平抛物体的运动轨迹为一抛物线。平抛运···

    Django+Vue.js搭建前后端分离项目的示例

    在写这篇文章的时候,顺带学习了一下关于Markdown的使用方法。 笔者是个渣渣,一切都是自己在摸索的学着,所以也谈不上什么体系、系统学习。在这里主要是为了实现把项目前后端分离开。 这里假设你的电脑上所需的django、vue.js已经有了,如果没有,往下拉就是vue.js的安装流···

    PHP中strtr字符串替换用法详解

    本文实例讲述了PHP中strtr字符串替换用法。分享给大家供大家参考。具体分析如下: strtr(string,from,to)或者strtr(string,array) 首先针对strtr函数第一种方式,我们看看下面的举例,代码如下: 复制代码 代码如下:<?php echo strtr("I Love you","Lo","lO"); ?&g···

    php实现按指定大小等比缩放生成上传图片缩略图的方法

    本文实例讲述了php实现按指定大小等比缩放生成上传图片缩略图的方法。分享给大家供大家参考。具体实现方法如下: 复制代码 代码如下:/**  * *  *等比缩放  * @param unknown_type $srcImage   源图片路径  * @param unknown_type $toFile&nb···

    vue实现键盘输入支付密码功能

    本文实例为大家分享了vue实现键盘输入支付密码功能的具体代码,供大家参考,具体内容如下 支付密码功能界面如下图: 主要代码如下: <template> <div class="pay-tool"> <div class="pay-tool-title border-bottom"> <span class="icon icon-back···

    PHP 下载文件时自动添加bom头的方法实例

    首先弄清楚,什么是bom头?在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark)。不仅限于 记事本保存的文件,只要在文件的开口包含了EF BB BF 几个不可见的字符(十六···

    微信小程序仿今日头条导航栏滚动解析

    项目需要,做一个和今日头条一样的导航栏,可以横行滚动,幸好再weui里面看到了类似的例子 地址:https://weui.shanliwawa.top/demo/js4.html,使用iscroll-lite.j实现,weui自己封装了一层,vue中实现代码: <div id="tab-tip" class="container"> <div id="tagna···

    Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题

     上篇提到的' Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题' 我总结了下,对于modal多窗口叠加引起的遮罩,滚动条,无法弹出窗口的问题,查看源代码,我总结了一种方法可以一次性解决所有这些问题,而不影响原有modal功能,并且实现了多窗口叠加。 对于多窗口,如果我···

    mysql更改引擎(InnoDB,MyISAM)的方法

    本文实例讲述了mysql更改引擎(InnoDB,MyISAM)的方法,分享给大家供大家参考。具体实现方法如下: mysql默认的数据库引擎是MyISAM,不支持事务和外键,也可使用支持事务和外键的InnoDB。 查看当前数据库的所支持的数据库引擎以及默认数据库引擎 数据库支持的引擎和默认数据库引···