上班上得快睡着,偷偷A了这道
来源:力扣(LeetCode)
题目:
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。
示例1:
输入:x = 123 输出:321
代码:
//Java方法 class Solution { public int reverse(int x) { //定义用来存储反序后的整数rev int rev = 0; //x直到被十除到0为止都在执行循环 while(x!=0){ //取输入数值的尾数 int pop = x % 10; //除去x的尾数 x /= 10; //按题意判断rev是否溢出最大能存储的整数,若溢出,返回0 if(rev > Integer.MAX_VALUE / 10 || rev == Integer.MAX_VALUE / 10 && pop > 7) return 0; if(rev < Integer.MIN_VALUE / 10 || rev == Integer.MIN_VALUE / 10 && pop < -8) return 0; //将尾数存入rev,rev循环存入尾数,达成逆序 rev = rev * 10 + pop; } return rev; } }