天天看点

LeetCode Q7

class Solution {
public:
    int reverse(int x) {
       
        bool flag=false;
        long temp=x;
        if(temp<0)
        {
            flag=true;temp=-temp;
        }
        long sum=0;
        while(temp>0)
        {
            sum*=10;
            sum+=(temp%10);
            temp/=10;
             if (sum > 0x7fffffff)
            return 0;
        }
        return flag?-sum:sum;
    }
};
           

一道字面意思很简单的题,但是有一个关键条件,即数值越界问题,可以在循环体内进行判断,不能超过2的32次方-1

可以用0x7fffffff十六进制表示,可以用INT_MAX 来表示