LeetCode——Reverse Integer

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

LeetCode——Reverse Integer 

Leedcode第七题:

题目如下:

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

题目看似比较简单,官网的标记也是EASY 但是陷阱很多,先来看第一次提交的代码:

class Solution {
public:
    int reverse(int x) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
		
		long res = 0;
		while(x)
		{
			res = res*10 + x%10;
			x /= 10;
		}
		return res;
    }
};

然后提交后就出现了Wrong Answer

Input: 1534236469
Output: 1056389759
Expected: 0

在于没有考虑溢出处理

修改后的代码:
class Solution{
public:
    int reverse(int x) {
         
        bool negative=false;//是否为负数
        if(x==INT_MIN)   //这里必须要判断 应为INT_MIN为了表示方便用八位 二进制为 1000 0000  进行x=-x运算时,计算机中用补码相乘,-1的补码为原码除符号位外取反加1  也就是 1000 0001  取反加一补码变为 1111 1111,所以x=-x变为补码乘法 1000 0000*1111 1111 =1000 0000,x又等于了INT_MIN ,所以当while循环中的x并没有为正数。
			return 0;
        if(x<0)
        {
            x=-x;
            negative_flag=true;
        }
        long long result=0;
        while(x!=0)
        {
            result=result*10+x%10;
            x=x/10;
        }
        if(result>INT_MAX)
            return 0;
        if(negative)
            return -result;
        else
            return result;         
    }
}

这里COPY了网友的注解http://www.2cto.com/kf/201501/370484.html,实在没想到x==INT_MIN的情况 看似简单的题目其实暗藏危机 ,难怪通过率并不高

#leetcode# Reverse Integer Input: 1534236469 Output: 1056389759 Expected: 0 https://oj.leetcode.com/problems/reverse-integer/ Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return - 阅读详情

相关推荐

7. 反转整数

给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 1: 输入: 123 输出: 321  示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。   这题思路很简单,就是每...

阵雨的博客 260

Leetcode-7 整数反转

处理之前要把负数变为正数 是result=result10+s[j];不是result**+**=result10+s[j];还要注意是从前到后还是从后到前 2的n次方:Math.pow(2,n)返回的是double类型,要想为整型需强制类型转换(int) java的输出:System.out.println() 不需要“%d\n” 9 6 4 6 3 2 4 3 5 1 9 96 964 9646 96463 964632 9646324 96463243 964632435 1056389759

qq_39622795的博客 250

2020-10-29 整数反转【简单题7】

文章目录题目解题 题目 解题 【思路】 本题可以想到用字符串的反转方法,但是字符串反转存在两个问题: 对于负数的负号“-”的处理; 判断溢出。 所以最后选择用数学方法解题: 弹出(x%10; x/10;)和推入数字(num = num*10 + x%10) & 溢出前进行检查 ...

qq_41684134的博客 534

Leetcode 7 Reverse Integer 反转数字

题目: Reverse digits of an integer. Example1:x = 123, return 321 Example2:x = -123, return -321 翻译就是把一个数字反过来输出。 解题思路:这道题目看起来比较简单。无非就是一个数字取个位,作为另一个高位。无非是在10的运算。 代码1: public static int reverse2...

大三狗现在才努力还不算晚吧?! 255

【力扣Leetcode题解系列之0007—— Reverse Integer:整数反转解题全析】

题目摘要 力扣第7题"Reverse Integer"要求反转32位有符号整数。本文详细解析两种解题方法:字符串转换法和纯数学法。字符串法通过类型转换和反转字符串实现,纯数学法通过循环取模运算处理数字位。两种方法均需处理边界条件,确保结果在32位整数范围内(-2147483648到2147483647),否则返回0。文章提供了P/J/C/C++/G五种语言的完整代码实现,并分析了算法的时间复杂度和空间复杂度。最后还提出进阶问题,建议处理64位整数反转以t拓展解题思路。

youngerwang的博客 942

java integer reverse_【LeetCode 力扣】7. Reverse Integer 整数反转 Java 解法

Hello 各位,这里是新治的第二篇博客,今天要解的这道题是LeetCode第七题,整数反转,先来读一下题:Given a 32-bit signed integer, reverse digits of an integer.Example 1:Input: 123Output: 321Example 2:Input: -123Output: -321Example 3:Input: 120Ou...

weixin_35578381的博客 275

LeetCode记录之7——Reverse Integer

LeetCode记录之7——Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 Note:The input is assumed to be a 32-bit signed integ...

三分自留地 116

LeetCode题目: 7.Reverse Integer

LeetCode题目: 7.Reverse Integer 原题链接:https://leetcode.com/problems/reverse-integer/description/ 解题思路:由于int类型不容易反转,将int转换成string,然后将string反转,最后转回int。核心思想:int->string->(反转)string->(反转)int代码细节:1.由于负号不需要反转

MyCodecOdecoDecodE的博客 621

leetcode Reverse Integer 反转数字 第七题

import java.util.Vector; import static java.lang.Math.pow; public class ReverseInteger_7 { /** * 将数字分解,装到vector中, * 从vector中转换为数字,length&lt;10可直接组装,length = 10;需要进行判断 * @param x...

腼腆的偷听桃的博客 236

Leetcode1-100: 07. Reverse Integer

Leetcode1-100: 07. Reverse Integer问题描述解题思路代码实现复杂度分析分析 问题描述 Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321 Example 2: Input: -123 Output: -321 Example 3: Input: 120 Output: 21 Note: Assume we are dealing wi

Y123iwantit的博客 205

[leetcode]Reverse Integer

这篇博文的代码有bug,新博文地址[leetcode]Reverse Integer http://oj.leetcode.com/problems/reverse-integer/ Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, re...

mc46790090的专栏 80

LeetCode力扣 7. 整数反转 Reverse Integer 题解代码 JavaScript

问题 https://leetcode-cn.com/problems/reverse-integer/ 练习使用JavaScript解答 /** * @param {number} x * @return {number} */ var reverse = function(x) { var flag = (x < 0) ? true : false; x = (x < 0) ? -x : x; var a = 0; while(x > 0)

Coding home - 漂流瓶jz 690

leetcode 7. Reverse Integer

leetcode 7. Reverse Integer 代码很好写,需要考虑呢的是反置的数字超出int 型的时候就要返回0.这里参考了https://www.cnblogs.com/ariel-dreamland/p/8706403.html这篇博客。 然后把leetcode里面默认给的数据类型也改了 long long int reverse(int x...

wyh196646的博客 166

leetcode试手 Reverse Integer

选了门算法分析与设计,老师推荐了leetcode网站作为编程的练习。第一次接触这个网站,感觉有点意思,再加上许久不打类似的题目有点生疏,选了个easy的题目试了试手,还是能找到自己的不足之处。Reverse Integer 一个很easy的题目,但是我用的方法好像非常的复杂…… 首先写了个int转string的函数void int2string(const int& num, string &s

那个字念颀的博客 210

LeetCode】7. Reverse Integer

7. Reverse Integer:https://leetcode.com/problems/reverse-integer/description/ 【runtime = 12ms】 hint:新结果赋值前检查是否overflow,原理是“result*10+x%10&gt;max”,但注意不等式两边都不能overflow class Solution { public: i...

flora_zhl的博客 215

[LeetCode] 7. Reverse Integer

题目链接:7. Reverse Integer 解题思路: 首先要知道 int 类型的范围是: -2^31~ 2^31- 1。也就是: -2147483648 ~ +2147483647,超出这个范围可以直接放回 0; 后续对数字取绝对值,所以用 flag 来记录这是正数还是负数; 在乘以 10 之前先判断会不会溢出了,会的话返回 0; class Solution { public...

Selukwe的博客 278

Leetcode代码学习周记——Reverse Integer

原题目链接: https://leetcode.com/problems/reverse-integer/description/ 题目描述: 反转一个整数的数位。 实例: x = 123,return 321  x = -123,return -321 注意: 输入假定为32位有符号整数。当反转的整数溢出时,您的函数应返回0。 除了题目给出的限制,还应该

MidnightDJ的博客 296

[LeetCode]Reverse Integer

题目要求: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 Have you thought about this? Here are some good questions to ask before coding. Bonus points for

zhouworld16的专栏 1万+

leetcode笔记:Reverse Integer

反转一个整数,若为负数,则负号不变,然后反转负数。该题题设虽然简单,但隐藏一些陷阱,如反转后数字的溢出问题、低位为0时反转到高位时又怎么处理。这种题目目的不是为了考察某种算法,而是考察对各种边界条件是否考虑周全。这里的代码只是能Accept,不代表完美无缺。

liyuefeilong的专栏 1555
上一篇: LeetCode——Longest Palindromic Substring
下一篇: ls命令的简要实现
cassiePython
博客等级 码龄12年 303粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值