资讯专栏INFORMATION COLUMN

LeetCode - 007 - 整数反转(reverse-integer)

venmos / 3605人阅读

摘要:详细介绍将其他值转成数字值。此方法更改数组的长度。详细介绍解题思路首先,将传入的数字转换成字符串,并分割成数组。本许可协议授权之外的使用权限可以从处获得。

Create by jsliang on 2019-05-19 09:42:39
Recently revised in 2019-05-19 16:08:24

Hello 小伙伴们,如果觉得本文还不错,记得给个 star , 小伙伴们的 star 是我持续更新的动力!GitHub 地址

LeetCode 攻略地址

一 目录

不折腾的前端,和咸鱼有什么区别

目录
一 目录
二 前言
三 解题
 3.1 解法 - 转字符串
 3.2 解法 - 数学算法
二 前言

返回目录

难度:简单

涉及知识:数组、数学

题目地址:leetcode-cn.com/problems/re…

题目内容

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321
 示例 2:

输入: -123
输出: -321
示例 3:

输入: 120
输出: 21
注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
三 解题

返回目录

官方题解:leetcode-cn.com/problems/re…

解题千千万,官方独一家,上面是官方使用 C++ / Java 进行的题解。

小伙伴可以先自己在本地尝试解题,再看看官方解题,最后再回来看看 jsliang 讲解下使用 JavaScript 的解题思路。

3.1 解法 - 转字符串

返回目录

解题代码

var reverse = function(x) {
  // 转数组
  let numberToArray = String(Math.abs(x)).split("");
  
  // 转字符串
  let result = "";
  for (const i = 0; i < numberToArray.length; ) {
    result += numberToArray.pop();
  }
  result = x > 0 ");Number(result) : - Number(result);
  
  // 超 [-Math.pow(2, 31), Math.pow(2, 31) - 1] 判断
  if (result > Math.pow(2, 31) - 1
  || result < - Math.pow(2, 31)) {
    result = 0;
  }
  
  return result;
};

执行测试

    x-1234

    return

-4321

LeetCode Submit

✔ Accepted
  ✔ 1032/1032 cases passed (88 ms)
  ✔ Your runtime beats 99.53 % of javascript submissions
  ✔ Your memory usage beats 46.01 % of javascript submissions (35.8 MB)

知识点

    String:将其他值转成字符串。String 详细介绍

    Number:将其他值转成数字值。Number 详细介绍

    pop()pop() 方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。pop() 详细介绍

    Math:JS 中的内置对象,具有数学常数和函数的属性和方法。Math 详细介绍

解题思路

首先,将传入的数字 x 转换成字符串,并分割成数组。

然后,遍历该数组,将最后一个取出来放到 result 中。

最后,判断这个 result 是否超过题目限制,如果超过则变成 0 。

进一步思考

3.2 解法 - 数学算法

返回目录

解题代码

var reverse = function(x) {
  let result = 0;
  let y = Math.abs(x);
  while (y != 0) {
    result = result * 10 + y % 10;
    y = Math.floor(y / 10);
    if (result > Math.pow(2, 31) - 1
    || result < -Math.pow(2, 31)) {
      result = 0;
      y = 0;
    }
  }
  return x > 0 ");

执行测试

    x-1234

    return

-4321

LeetCode Submit

✔ Accepted
  ✔ 1032/1032 cases passed (108 ms)
  ✔ Your runtime beats 97.4 % of javascript submissions
  ✔ Your memory usage beats 23.63 % of javascript submissions (36 MB)

知识点

    Math:JS 中的内置对象,具有数学常数和函数的属性和方法。Math 详细介绍

解题思路

首先,我们初始化数值。

然后,我们需要知道的是,一个数对 10 取余,可以得到这个数的个位数;一个数乘于 10 并加上一个个位数,可以将这个数字放到末尾。

最后,我们判断一开始传入的数值正负,再返回对应结果即可。


jsliang 广告推送:
也许小伙伴想了解下云服务器
或者小伙伴想买一台云服务器
或者小伙伴需要续费云服务器
欢迎点击 云服务器推广 查看!


jsliang 的文档库 由 梁峻荣 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。
基于github.com/LiangJunron…上的作品创作。
本许可协议授权之外的使用权限可以从 creativecommons.org/licenses/by… 处获得。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/6823.html

相关文章

  • LeetCode 攻略 - 2019 年 7 月上半月汇总(55 题攻略)

    摘要:微信公众号记录截图记录截图目前关于这块算法与数据结构的安排前。已攻略返回目录目前已攻略篇文章。会根据题解以及留言内容,进行补充,并添加上提供题解的小伙伴的昵称和地址。本许可协议授权之外的使用权限可以从处获得。 Create by jsliang on 2019-07-15 11:54:45 Recently revised in 2019-07-15 15:25:25 一 目录 不...

    warmcheng 评论0 收藏0
  • LeetCode 攻略 - 2019 年 7 月下半月汇总(100 题攻略)

    摘要:月下半旬攻略道题,目前已攻略题。目前简单难度攻略已经到题,所以后面会调整自己,在刷算法与数据结构的同时,攻略中等难度的题目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道题,目前已攻略 100 题。 一 目录 不折腾的前端,和咸鱼有什么区别...

    tain335 评论0 收藏0
  • 前端 | 每天一个 LeetCode

    摘要:在线网站地址我的微信公众号完整题目列表从年月日起,每天更新一题,顺序从易到难,目前已更新个题。这是项目地址欢迎一起交流学习。 这篇文章记录我练习的 LeetCode 题目,语言 JavaScript。 在线网站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公众号: showImg(htt...

    张汉庆 评论0 收藏0
  • LeetCode Easy】007 Reverse Integer

    摘要:第一时间想到这是经典的取模取余运算,但是写的过程中遇到了很多问题这么简单一题基础做法取一个整数的最后一位数字只要把这个整数就可以,要取除最后一位数字之外的其它数字只要是没有长度函数的,需要转化成才能使用长度函数用这个方法最大的难点在 Easy 007 Reverse Integer Description: Given a 32-bit signed integer, reverse ...

    Sourcelink 评论0 收藏0
  • leetcode刷题-----7. 整数反转

    摘要:题目给出一个位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例输入输出示例输入输出示例输入输出注意假设我们的环境只能存储得下位的有符号整数,则其数值范围为。解答关键将整数转换为字符串进行切片反转注意溢出注意符号 题目: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -32...

    daydream 评论0 收藏0

发表评论

0条评论

venmos

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<