zoukankan      html  css  js  c++  java
  • LeetCode | Reverse Integer

    Reverse Integer

     Total Accepted: 72743 Total Submissions: 279370My Submissions

    Reverse digits of an integer.

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

    click to show spoilers.

    Show Tags














    思路:这一题就是将一个整型值逆序输出,转换成字符串解答固然简单,但是本题要求返回值为int型,并不能这麽自由发挥,而且这题WA点在于,应当考虑当逆序后超过int类型数据范围的情况。比如说1212232439,该数输入正常,但是逆序后,显然超过int类型范围。(int类型数据范围:-2147483648~2147483647)。还有数据存储,应当考虑数值为负的情况,当然这都是小事情,注意到WA点就ok了。我的判断方法比较蠢,采取逐个判断逆序存储的数值。

    class Solution {
    public:
        int reverse(int x) {
           if(x==0||x==-2147483648||x==2147483647) return 0;  //2147483647
           int flag=0;
           if(x<0)
           {
              flag=1;
              x=-x;
           }
           int cnt=0,a[20],res=0,temp=x;
           while(temp)
           {
               a[cnt++]=temp%10;
               temp=temp/10;
           }
           if(flag==0&&cnt==10)
           {
               if(a[0]>=3) return 0;
               if(a[0]==2&&a[1]>=2) return 0;
               if(a[0]==2&&a[1]==1&&a[2]>=5) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]>=8) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]==7&&a[4]>=5) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]==7&&a[4]==4&&a[5]>=9) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]==7&&a[4]==4&&a[5]==8&&a[6]>=4) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]==7&&a[4]==4&&a[5]==8&&a[6]==3&&a[7]>=7) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]==7&&a[4]==4&&a[5]==8&&a[6]==3&&a[7]==6&&a[8]>=5) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]==7&&a[4]==4&&a[5]==8&&a[6]==3&&a[7]==6&&a[8]==4&&a[9]>=8) return 0;
           }
           if(flag==1&&cnt==10)
           {
               if(a[0]>=3) return 0;
               if(a[0]==2&&a[1]>=2) return 0;
               if(a[0]==2&&a[1]==1&&a[2]>=5) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]>=8) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]==7&&a[4]>=5) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]==7&&a[4]==4&&a[5]>=9) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]==7&&a[4]==4&&a[5]==8&&a[6]>=4) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]==7&&a[4]==4&&a[5]==8&&a[6]==3&&a[7]>=7) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]==7&&a[4]==4&&a[5]==8&&a[6]==3&&a[7]==6&&a[8]>=5) return 0;
               if(a[0]==2&&a[1]==1&&a[2]==4&&a[3]==7&&a[4]==4&&a[5]==8&&a[6]==3&&a[7]==6&&a[8]==4&&a[9]>=9) return 0;
           }
           for(int i=0;i<cnt;i++)
           {
               int t=1;
               for(int k=1;k<cnt-i;k++)
                   t*=10;
               res += t*a[i];
           }
          if(flag==1)return -res;
          else
            return res;
        }
    };
    

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法输入日志标题
    Linux下安装oracle数据库提示DISPLAY not set. Please set the DISPLAY and try again。
    redhat 关机注销命令详解
    VirtualBox的四种网络连接方式
    修改RedHat的系统显示时间
    insufficient memory to configure kdump(没有足够的内存)解决方法(待验证、待解决)
    xen坑随笔 heartbeat dpkg垃圾数据库清除
    tomcat 监控脚本
    负载均衡随笔
    GIT命令介绍
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965370.html
Copyright © 2011-2022 走看看