zoukankan      html  css  js  c++  java
  • Reverse Integer

    第一个题目是将整数进行反转,这个题实现反转并不难,主要关键点在于如何进行溢出判断。溢出判断再上一篇字符串转整数中已有介绍,本题采用其中的第三种方法,将数字转为字符串,使用字符串比较大小的方法进行比较。

    代码如下:

     1 class Solution {
     2 public:
     3     int reverse(int x) {
     4         int stand[10]={2,1,4,7,4,8,3,6,4,8};
     5         int getnum[10];
     6         int a=0,flag=0;
     7         if(x>0)
     8             flag=1;
     9         else
    10             if(x<0)
    11             {
    12                 flag=-1;
    13                 x=-x;
    14             }
    15             else
    16                 return 0;
    17         int count=0;
    18         while(x>0)
    19         {
    20             getnum[count]=(x%10);
    21             x=x/10;
    22             count++;
    23         }
    24 
    25         if(count==10)
    26         {
    27             int index=0;
    28             for(int i=0;i<count;i++)
    29             {
    30                 if(stand[i]==getnum[i])
    31                     index++;
    32                 else
    33                     if(stand[i]<getnum[i])
    34                         return 0;
    35                     else
    36                         break;
    37             }
    38             if(index==10)
    39             {
    40                 if(flag==1)
    41                     return 2147483648;
    42                 else
    43                     return 0;
    44             }
    45         }
    46 
    47         for(int i=0;i<count;i++)
    48         a=a*10+getnum[i];
    49 
    50         return a*flag;
    51     }
    52 };

    因为输入也一定最多是10位数,所以数组大小为10足够。

    Palindrome Number

    第二个题目是寻找回文数,题目要求不要使用多余的空间。不使用多余空间的方法是在将数字从低位向高位不断重组,当进行到一半的时候,必定会相等或者多出一位,除去这一位还是相等的。这样也不用担心溢出等问题。

  • 相关阅读:
    大于00
    today
    10
    面试题flask
    开发者日志
    7月22日一天学的东西
    资料
    3333
    2222
    1
  • 原文地址:https://www.cnblogs.com/holyprince/p/4626435.html
Copyright © 2011-2022 走看看