zoukankan      html  css  js  c++  java
  • 【leetcode刷题笔记】Reverse Integer

    Reverse digits of an integer.

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

    解题:设定一个变量sum存放反转后的答案,每次取输入x的最后一位n,并用sum = sum*10+n更新sum。

    例如题设的数字123,初始sum为0,过程如下:

    取末尾的3,sum=3,x=12

    取末尾的2,sum=32,x=1

    取末尾的1,sum=321,x=0

    特别注意x一开始就是0的处理,直接返回0就可以了。

    代码:

     1 class Solution {
     2 public:
     3     int reverse(int x) {
     4         int sum = 0;
     5         if(x == 0)
     6             return 0;
     7         while(x != 0){
     8             int temp = x%10;
     9             sum = sum*10+temp;
    10             x /= 10;
    11         }
    12         return sum;
    13     }
    14 };

    题目还给出了一些思考:

    1.If the integer's last digit is 0, what should the output be? ie, cases such as 10, 100.

      上述的方法避免了这个问题,10和100的输出都是1

    2.Did you notice that the reversed integer might overflow? Assume the input is a 32-bit integer, then the reverse of 1000000003 overflows. How should you handle such cases? Throw an exception? Good, but what if throwing an exception is not an option? You would then have to re-design the function (ie, add an extra parameter).

      

  • 相关阅读:
    QGIS 编译
    Ubuntu: 无法使用su命令
    win7 与 Ubuntu 16.04 文件传送
    OSGEarth编译
    GADL配置编译
    C++ 类对象和 指针的区别
    C++ Primer Plus 第六版笔记
    Windows下使用doxygen阅读和分析C/C++代码
    _MSC_VER详细介绍
    LUA学习之一 初次接触
  • 原文地址:https://www.cnblogs.com/sunshineatnoon/p/3637863.html
Copyright © 2011-2022 走看看