LeetCode题解:7. 整数反转,迭代,JavaScript,详细注释

原题链接:
https://leetcode.cn/problems/reverse-integer

解题思路:

  1. 使用result存储反转后结果,初始值为0
  2. 每次循环取出x的个位数curr,再将x向右移动一位。
  3. result向左移动一位,并将curr存入result的个位数。
  4. 不断循环直到x0,即可完成反转。
  5. x为负数时,正整数部分的反转结果与正数是一样的。因此可以将x都转为正整数处理,完成后再判断是否需要返回负数。
/**
 * @param {number} x
 * @return {number}
 */
var reverse = function (x) {
  let result = 0; // 储存结果
  // 正负数除了符号以外,处理结果是一样的,因此都转换为正数处理
  let pos = x > 0 ? x : Math.abs(x);

  // 不断循环直到pos为0
  while (pos !== 0) {
    // 取出pos的个位数字
    const curr = pos % 10;

    // 将result向左移动一位,将curr存入result的个位,完成一次反转
    result = result * 10 + curr;
    // 将pos向右移动一位,并去除小数
    pos = Math.floor(pos / 10);

    // 如果移动后的结果大于2^31 − 1,则返回0
    if (result > 0x7fffffff) {
      return 0;
    }
  }

  // 判断x的正负,并返回相应结果
  return x > 0 ? result : -result;
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值