• leetcode 142:reverse-integer


    题目描述

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

    你有思考过下面的这些问题么?
    如果整数的最后一位是0,那么输出应该是什么?比如10,100
    你注意到翻转后的整数可能溢出吗?假设输入是32位整数,则将翻转10000000003就会溢出,你该怎么处理这样的样例?抛出异常?这样做很好,但是如果不允许抛出异常呢?这样的话你必须重新设计函数(比如添加一个额外的参数)。
    题目分析:
    这个题目比较简单,常规题。主要就是对符号的处理和如果数据溢出的处理。如果数据小于0,则一定为负数,负数转换了以后还是负数。数据溢出时加了判断 if(reverseNum >= INT_MAX),如果溢出,返回0.
    代码如下:
     1 int reverse(int x) {
     2         long long reverseNum = 0;
     3         int flag = 1;
     4         if(x < 0)
     5             flag = flag * -1;
     6         x = x*flag;
     7         while(x > 0)
     8         {
     9             reverseNum = reverseNum * 10 + x%10;
    10             x /= 10;
    11             if(reverseNum >= INT_MAX)
    12                 return 0;
    13         }
    14         return reverseNum * flag;
    15     }
  • 相关阅读:
    机械学习--5
    机械学习--4
    机械学习--3
    机械学习--2
    机器学习--1
    编译原理 作业十五
    编译原理 作业十四
    编译原理 作业十二
    编译原理 作业十一
    编译原理 作业十
  • 原文地址:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/13490403.html
Copyright © 2020-2023  润新知