js 数组倒序_我用JS刷LeetCode | Day 6 | Palindrome Number
来公众号「九零后重庆崽儿」,我们一起学前端
回文数:
说明:现阶段的解题暂未考虑复杂度问题
首发地址:
我用JS刷LeetCode | Day 6 | Palindrome Numberwww.brandhuang.com
Question:
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
Coud you solve it without converting the integer to a string?
中文题目:
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
注意:
你能不将整数转为字符串来解决这个问题吗?
Example:
Input: 121
Output: trueInput: -121
Output: falseInput: 10
Output: false
个人分析:
- 看到题目
「回文数字」
,我们第一反应很有可能就是将数字先转成字符串然后转成数组,最后利用数组的reverse
方法进行倒序,然后转换成数字来判断原数字新数字是否相等即可,即答案一
。 - 我们可以分析下
回文数
的特点可以发现,他是一个对称结构的数
,所以从两端向中间遍历,如果遍历出的两个字符不相等,则说明不是回文数
,直接返回false
,,否则一直遍历到从两端遍历的交叉点为止。所以有了答案二
。 但是
,题目最后还有个问题:「你能不将整数转为字符串来解决这个问题吗?」
。- 不转成字符串的方法我
没有做出来!
,看了大神们的答案后简单分析下答案三
。 - 主要思路就是
把数字翻过了,然后和输入值进行比较
,如果相等,则是回文数,否则不是回文数。 - 声明一个
s
变量来存输入的x
,声明一个rev
变量来存输入的数字的个位数。 - 当把输入值的个位数移到变量
rev
中后,输入值的位数少了一位,所以有新的s
值变成了s / 10
。Math.floor(s / 10)
是取整方便计算。 rev
的值每次循环都会增加一位,所以新的rev
变成了上一步中的 rev 乘以 10
然后加上这一步中的s的个位数
。- 直到
s
变为 0 时循环停止,此时比较原输入值和倒序后的值,若相等,则是回文数,否则不是回文数
。 - 得出
答案三
。
Answer:
一、答案一
var isPalindrome = function(x) {return x === Number(x.toString().split('').reverse().join(''))
};
二、答案二
var isPalindrome = function(x) {let xStr = x.toString()let i = 0; // 头部let j = xStr.length - 1 // 尾部while(i < j){if(xStr[i] !== xStr[j]) {return false;} else{i ++;j --;}}return true
};
三、答案三
var isPalindrome = function(x) {let s = x;let rev = 0while (s > 0) {rev = rev * 10 + s % 10s = Math.floor(s / 10)}return x === rev
};
其他:
本题更多 JavaScript
解析,点击链接访问对应的答案:https://leetcode.com
js 数组倒序_我用JS刷LeetCode | Day 6 | Palindrome Number相关推荐
- js splice方法_我用JS刷LeetCode | Day 8
如有兴趣,微信搜索「九零后重庆崽儿」,我们一起学前端. 删除排序数组中的重复项: 说明:现阶段的解题暂未考虑复杂度问题 首发地址: 我用JS刷LeetCode | Day 8www.brandhua ...
- c++ 构造函数数组_从 JS 数组操作到 V8 array.js
前言 最近在写面试编程题,经常用到数组,经常想偷个懒,用它提供的方法,奈何还是对数组方法使用不熟练,导致写了很多的垃圾代码,很多地方稍加修改的话肯定变得简洁高效优雅? 所以✍这篇文章本着了解一下Jav ...
- 微信小程序js数组初始化_微信小程序学习Course 3-2 JS数组对象学习
微信小程序学习Course 3-2 JS数组对象学习 本节主要介绍JS中的数组. 3-2.1 数组的声明 数组声明的方式多种,如下例.一般我们可以先创建一个空数组,然后再填充. var names = ...
- JS数组删除指定下标元素 JS删除对象指定元素
一.JS数组删除指定下标元素 splice方法--Array.splice(index,n) 参数语义化理解:删除以下标index为起点的n个元素.(之后的元素会往前移动) 注意:splice会直接改 ...
- node.js编写网页_为Node.js编写可扩展架构
node.js编写网页 by Zafar Saleem 通过Zafar Saleem 为Node.js编写可扩展架构 (Writing Scalable Architecture For Nodejs ...
- js list操作_使用 Node.js 实现一个命令行 todo-list(1)- 基本功能
功能介绍 为了熟悉 Node.js,使用 Node.js 制作一个命令行小工具,项目仓库:https://github.com/FuZhouJohn/node-todo,先来介绍一下功能: 添加任务: ...
- js数组获取index_想自学JS吗?想提升JS底层原理吗?76张脑图带你彻底搞懂原生JS...
本篇内容适用于:初学前端:及工作时间不久想回顾基础的各位伙伴: 文章主要由图片组成,看起来可能会不太方便,适合保存下来单张查看: 既然来了,就看看在走吧,总会有些收获的: 一.前端发展史 二.JS基础 ...
- js声明数组 js数组如何获取真实对象 js数组处理null值情况 js数组通过下标赋值和push赋值的区别 loopback4的基础使用
目录 问题来源 js数组 数组通过下标赋值 数组通过push赋值 总结 loopback4 安装 创建项目 项目启动 访问项目 创建HelloController 运行访问HelloControlle ...
- node.js中模块_在Node.js中需要模块:您需要知道的一切
node.js中模块 by Samer Buna 通过Samer Buna 在Node.js中需要模块:您需要知道的一切 (Requiring modules in Node.js: Everythi ...
最新文章
- 基于多阈值注意U-Net(MTAU)的MRI多模态脑肿瘤分割模型
- unity 代码边缘发光_Shader案例之内发光和边缘泛光效果
- Zend framework重定向的方法
- 移动端H5页面高清多屏适配方案
- Linux内核模块的概念和基本的编程方法
- IP Cam须改原厂密码防黑客
- 如何使用XML 配置的方式配置Spring?
- [css] 使用css如何设置背景虚化?
- Android 生成随机数,获取一条随机字符串
- 【学习笔记】网络层——IPv6:地址表示、IPv4的对比、IPv4过渡到IPv6、基本地址类型等
- 利用WebBrowser获得页面部分数据
- linux打印jvm内存堆栈_jvm内存堆栈监控之jmap篇
- 理解结构与表现相分离
- 后端MultipartFile接收文件转Base64
- SHELLEXECUTEINFO 和 ShellExecuteEx的使用
- 双机流水作业调度问题——Johnson算法
- html页面小宠物代码大全,纯css3实现宠物小鸡实例代码
- Ubuntu 20.04 安装 ros 遇到的问题: The following packages have unmet dependencies
- 【二叉树】重建二叉树
- React Native带你一步步实现热更新(CodePush-Android)
热门文章
- python读取图像数据的一些方法
- vue跳转到同一路由但传递参数不同,从而判断页面显示内容
- 2022-2028全球与中国非PVC静脉注射袋市场现状及未来发展趋势
- 如何保持mysql和redis中数据的一致性?
- MySQL主从复制原理解析
- 乐视影业嬗变:从影业到物联网
- parser.feed_提示,使用Universal Feed Parser驯服RSS
- Java读取.ipa程序下info.plist
- php随机整数函数,PHP随机数函数rand()与mt_rand()
- 架构思维成长系列教程(十四)- 不想当架构师的程序员不是好程序员