Leetcode 7. 整数反转 中等 数学
7. 整数反转
题目:
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
思路:
// 弹出 x 的末尾数字 digit
digit = x % 10
x /= 10
// 将数字 digit 推入 rev 末尾
rev = rev * 10 + digit
但是又要求不能超过整数范围,因此在计算rev时要先判断[INT_MIN/10,INT_MAX/10]是否在这个范围内
class Solution { public: int reverse(int x) { int rev=0; while(x!=0){ if(rev<INT_MIN/10||rev>INT_MAX/10){ return 0; } int digit=x%10; x=x/10; rev=rev*10+digit; } return rev; } };
联系方式:emhhbmdfbGlhbmcxOTkxQDEyNi5jb20=