Leetcode——整数反转

Posted Yawn,

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode——整数反转相关的知识,希望对你有一定的参考价值。

1. 题目

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

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

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

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

2. 题解

解法一:

翻转每一位数字即可,原理比较简单,我们直接来看图分析
在这里插入图片描述

    public int reverse(int x) {
        int res = 0;
        while (x != 0) {
            int t = x % 10;
            int newRes = res * 10 + t;
            //如果数字溢出,直接返回0
            if ((newRes - t) / 10 != res)
                return 0;
            res = newRes;
            x = x / 10;
        }
        return res;
    }

解法二:

转为字符串再反转

class Solution {
    public int reverse(int x) {
        if (x==0){
            return 0;
        }
        int flag = x > 0 ? 1 : -1;
        x = Math.abs(x);
        
        int num = 0;
        try{
             num = Integer.valueOf(new StringBuffer(String.valueOf(x)).reverse().toString());}
        catch (NumberFormatException e){
            return 0;
        }
        return num*flag;
    }
}

以上是关于Leetcode——整数反转的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 7. 整数反转-简单

LeetCode7. 整数反转python3

LeetCode7. 整数反转

一起刷LeetCode整数反转

leetcode7整数反转

Leetcode 7.反转整数 By Python