将整数翻转

题目描述
将给出的整数x翻转。
例1:x=123,返回321
例2:x=-123,返回-321

你有思考过下面的这些问题么?
如果整数的最后一位是0,那么输出应该是什么?比如10,100
你注意到翻转后的整数可能溢出吗?假设输入是32位整数,则将翻转10000000003就会溢出,你该怎么处理这样的样例?抛出异常?这样做很好,但是如果不允许抛出异常呢?这样的话你必须重新设计函数(比如添加一个额外的参数)

思路
本来还加了判断数字正负和0的部分,但是发现不加也没关系
if(ans >= INT_MAX || ans <= INT_MIN) 判断有没有越界

class Solution {
public:
    int reverse(int x) 
    {
        int ans = 0;
        while(x != 0)
        {
            ans = ans*10 + x%10;
            x = x/10;
        }
        
        if(ans >= INT_MAX || ans <= INT_MIN)
            return 0;
        return ans;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容