(LeetCode)算法学习- 整数反转分析

题目:

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

示例:

整数:123
反转:321

class Solution {
     
     public int reverse(int x) {
     
        //声明long类型,用来接收翻转后的数
        long n = 0;
        while(x != 0) {
     
        	// 第一次n为0,之后则为上一次的x最后一位*10
        	// 再加x的最后一位数
            n = n*10 + x%10;
            // x也相应每次除以10,用于下一次取模
            x = x/10;
        }
        //完全反转后将n强转为需要返回的int类型并与n比较
        //如果等于或者超出范围表达式结果为false
        return (int)n==n? (int)n:0;
    }
}

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum
答案作者:弋

你可能感兴趣的:(算法学习)