美文网首页
整数反转

整数反转

作者: Junetaurus | 来源:发表于2023-03-08 10:05 被阅读0次

题目

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。


示例 1:
输入:x = 123
输出:321


示例 2:
输入:x = -123
输出:-321


示例 3:
输入:x = 120
输出:21


示例 4:
输入:x = 0
输出:0


来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/reverse-integer

代码

  • 第一想法转字符串倒序
class Solution {
  int reverse(int x) {
    if (x == 0) return 0;
    int tmp = x > 0 ? x : x * -1;

    String string = tmp.toString();
    String pre = string[string.length - 1];
    String next = "0";
    var result = pre != "0" ? pre : "";

    for (var i = string.length - 2; i >= 0; i--) {
      pre = string[i + 1];
      if (string[i] != '0' || pre != 0 || next != '0') {
        result += string[i];
      }
      next = string[i];
    }
    int value = int.parse(result);
    if (value > pow(2, 31)) return 0;
    if (x < 0) value *= -1;
    return value;
  }
}
这结果一看就无了😭
  • 套公式:x * 10 + y,举个例子 123,需要返回 321,第一步 0 * 10 + 3 = 3,第二步 3 * 10 + 2 = 32,第三步 32 * 10 + 1 = 321。妙啊,这不刷题谁能想到啊😱。
class Solution {
  int reverse(int x) {
    //转为正数
    int val = x >=0 ? x : -x;
    int res = 0;
    while (val != 0) {
      //取尾数
      int tmp = val % 10;
      //公式:x * 10 + y
      res = res * 10 + tmp;
      //边界条件 pow(2, 31)
      if (res > 2147483648) return 0;
      val ~/= 10;
    }
    return x >= 0 ? res : -res;
  }
}

相关文章

  • 反转整数

    给定一个 32 位有符号整数,将整数中的数字进行反转。 class Solution(object):def re...

  • 反转整数

    题目描述 给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 1: 输入: 123输出: 321 示例 ...

  • 整数反转

  • 反转整数

    给定一个32位有符号整数,将整数中的数字进行反转(假设我们的环境只能存储32位有符号整数,其数值范围是[−2(31...

  • 反转整数

    反转整数 给定一个 32 位有符号整数,将整数中的数字进行反转。 示例1: 输入:123输出:321 示例 2: ...

  • 反转整数

    题目描述 给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 输入: 123输出: 321输入: -12...

  • 反转整数

    给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 1: 输入:123输出:321 示例 2: 输入:-...

  • 整数反转

    版权声明:本文为博主原创文章,转载请注明出处。个人博客地址:https://yangyuanlin.club欢迎来...

  • 反转整数

    给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 1: 输入: 123输出: 321示例 2: 输入:...

  • 整数反转

    题目要求 给出一个32位的有符号整数,你需要将这个整数中每位上的数字进行反转。比如:输入:1234输出:4321或...

网友评论

      本文标题:整数反转

      本文链接:https://www.haomeiwen.com/subject/adbildtx.html