我是靠谱客的博主 平淡皮带,最近开发中收集的这篇文章主要介绍leetcode 7:反转整数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目:反转整数
- 题目面述:
给定一个32位有符号整数,将整数中的数字进行反转。
实例1:

输入:123
输出:321

实例2:

输入:-123
输出:-321

注意:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。
解法一:

[C++:]
static int x = []() {
std::ios::sync_with_stdio(false);
cin.tie(NULL);
return 0;
}();
class Solution {
public:
int reverse(int x) {
long int sum=0;
if(x<0)
{
while(x)
{
sum=sum*10+x%10;
x/=10;
}
}
else{
x=-x;
while(x)
{
sum=sum*10+x%10;
x/=10;
}
sum=-sum;
}
int flag=pow(2,32);
if(sum>flag-1||sum<-flag)
return 0;
else return sum;
}
};

解法二:

class Solution {
public:
#define INT_MAX 2147483647

#define INT_MIN (-INT_MAX - 1)

int reverse(int x) {
int flag = 1;//设置正负指示

if (x < 0){
flag = -1;
x = -x;
}
int num = 0;
while (x > 0){
if ((num != 0 && (INT_MAX / abs(num) < 10)) || ((unsigned int)abs(num * 10) + (unsigned int)(x % 10) > INT_MAX)){//溢出

return 0;
}
num = num * 10 + flag * (x % 10);
x = x / 10;
}
return num;
}
};

最后

以上就是平淡皮带为你收集整理的leetcode 7:反转整数的全部内容,希望文章能够帮你解决leetcode 7:反转整数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部