【LeetCode #7 题解】 整数反转
发布日期:2021-06-29 14:52:30 浏览次数:2 分类:技术文章

本文共 698 字,大约阅读时间需要 2 分钟。

【LeetCode #7 题解】 整数反转

一、题目

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

示例 1:

输入: 123输出: 321

示例 2:

输入: -123输出: -321

示例 3:

输入: 120输出: 21

注意:

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

二、题解: 使用long,不符合 32 位的有符号整数 环境

int reverse(int x){
long result=0; while(x != 0){
result = result*10 + x%10; x = x / 10; } return result > 2147483647 || result < -2147483648 ? 0 : result;}

在这里插入图片描述

三、正解:不使用long

#define INT_MAX  2147483647        #define INT_MIN  -2147483648   int reverse(int x){
int result = 0; while(x != 0){
// 先计算是否可能会溢出 // 正数情况 if( ( (result>INT_MAX/10) || (result==INT_MAX/10 && (x%10)>7) ) || ( (result

在这里插入图片描述

转载地址:https://ciellee.blog.csdn.net/article/details/107233221 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【经典算法实现 1】选择排序法 O(n^2)
下一篇:【LeetCode #6 题解】 Z 字形变换

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月06日 03时12分45秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章