ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

LeetCode--代码详解 7.整数反转

LeetCode--代码详解 7.整数反转

7.整数反转

题目

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

示例 1:

输入:x = 123
输出:321

示例 2:

输入:x = -123
输出:-321

示例 3:

输入:x = 120
输出:21

示例 4:

输入:x = 0
输出:0

提示:

  • -231 <= x <= 231 - 1

思路

获得末尾元素,进行溢出判断

用long强转int更方便,但题目不允许

代码

class Solution {public int reverse(int x) {int ans = 0;while(x!=0){int tmp = x%10; //获得末尾元素if(ans > Integer.MAX_VALUE /10 || (ans == Integer.MAX_VALUE /10 && tmp>7))return 0;if(ans < Integer.MIN_VALUE /10 || (ans == Integer.MIN_VALUE /10 && tmp<-8))return 0;ans = ans *10 +tmp;x /= 10;}return ans;        }
} 

返回列表