码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode #7 revert integer 问题

时间:2015-06-15 18:27:14      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:

问题描述:

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

输入一个整形数字,然后输出它的反转

 

需要注意的是,int形变量的反转有可能是超过int的限制的,比如12345678999的反转,就会overflow,leetcode要求如果出现这种状况就要return 0.

 

思路是从末位循环获取输入数字每一位的值,放到新的数字中.返回数字的类型先设定为long ,如果超出int的界限,就return 0.

class Solution {
public:
    long reverse(int x) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        int sign = x > 0 ? 1 : -1;
        x = abs(x);
        long ret = 0;
        while(x)
        {
            int digit=x%10;
            ret=ret*10+digit;
            x/=10;
        }
        if(abs(ret)>INT_MAX)
            return 0;
        return ret * sign;
    }
};

 

leetcode #7 revert integer 问题

标签:

原文地址:http://www.cnblogs.com/zeakey/p/4578470.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!