力扣 7 整数反转

力扣 7 整数反转

题目

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

示例 1:

输入: 123
输出: 321
示例 2:

输入: -123
输出: -321
示例 3:

输入: 120
输出: 21



思路

int类型的数值范围为 [−2^31, 2^31 − 1]
int的最大值为: 2147483647 INT_MAX
若输入的值为: 1111111111119
反过来变成: 9111111111111 显然溢出
先用long long长整型进行反转,最后判断是否能输出,若不能 return 0

class Solution {
public:
	int reverse(int x) {
		long long y = x;
		int flag = 1;//用flag记录正负
		if (y < 0) {
			y = -y;
			flag = -1;
		}
		int t = 0;
		long long final = 0; 
		while (y > 0)
		{
			t = y % 10;
			y = y / 10;
			final = final * 10 + t;
		}
		final = final * flag;
		if (final > INT_MAX || final < INT_MIN) return 0;//是否在int类型范围内
		return  final;
	}
};


最后执行结果

在这里插入图片描述

发布了15 篇原创文章 · 获赞 1 · 访问量 303

猜你喜欢

转载自blog.csdn.net/Janna_woo/article/details/103941395
今日推荐