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;
        }
    };
    

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

  • 相关阅读:
    SpringBoot集成Swagger2并配置多个包路径扫描
    SpringBoot基于EasyExcel解析Excel实现文件导出导入、读取写入
    SpringBoot + SpringSecurity + Quartz + Layui实现系统权限控制和定时任务
    Redis数据持久化(RDB、AOF)
    so安全编译选项(栈溢出保护)
    Python调用Chrome下载文件
    AtomicInteger如何保证线程安全以及乐观锁/悲观锁的概念
    SpringCloud:Eureka的健康检测机制
    共享锁(S锁)和排它锁(X锁)
    Collection接口及其常用子类(java.util包)
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965370.html
Copyright © 2011-2022 走看看