7. Reverse Integer

水题。


class Solution {                                                                                                                                                                                            
    public:     
        int reverse(int x) { 
            if (!x) { 
                return 0;    
            }       
                
            string init_s;   
            bool positive = x > 0 ? true : false;  
            long long y;
                
            if (!positive) { 
                y = ((long long)x) * (-1);         
            } else {  
                y = x;
            }       
                
            while(y) {
                init_s = init_s + (char)('0'+y%10);
                y /= 10;
            }       
                
            long long reverse = 0;    
            for (int i = 0; i < init_s.length(); i++) {
                reverse = reverse*10 + (init_s[i] - '0');
            }       
                
            if (!positive) { 
                reverse *= -1;
            }       
                
            // 正数溢出.
            if (positive && reverse > int_pow(2, 31) - 1) {
                return 0;    
            } else if (!positive && reverse < -1 * int_pow(2, 31)) {
            // 负数溢出.
                return 0;
            } else {  
                return reverse;
            }   
        }       
                
    private:          
        long long int_pow(int x, int n) {
            long long pow = 1;
            while(n--) {
                pow *= x;
            }         
            return pow;
        }       
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值