LeetCode | Reverse Integer
来源:互联网 发布:金融学实训软件 编辑:程序博客网 时间:2024/06/06 01:56
Reverse Integer
Total Accepted: 72743 Total Submissions: 279370My SubmissionsReverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
click to show spoilers.
思路:这一题就是将一个整型值逆序输出,转换成字符串解答固然简单,但是本题要求返回值为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; }};
0 0
- LeetCode:Reverse Integer
- LeetCode: Reverse Integer
- [Leetcode] Reverse Integer
- LeetCode : Reverse Integer
- [LeetCode] Reverse Integer
- Leetcode: Reverse Integer
- LeetCode 7 - Reverse Integer
- leetcode 104: Reverse Integer
- Leetcode : Reverse Integer
- 【leetcode】Reverse Integer
- [LeetCode]Reverse Integer
- LeetCode-Reverse Integer
- [leetcode] Reverse Integer
- LeetCode - Reverse Integer
- leetcode之Reverse Integer
- LeetCode | Reverse Integer
- LeetCode: Reverse Integer
- Leetcode: Reverse Integer
- Codevs3657括号序列题解
- 第37讲-项目四-大奖赛计分
- Flex4.6+blazeDS+MyEclipse10+SQLSERVER项目环境搭建
- UIScrollView 之 EXC_BAD_ACCESS
- Fragment介绍
- LeetCode | Reverse Integer
- C#常用方法
- 从阳灿众筹网,看国内众筹平台的推广
- 第三次java作业:网络编程
- 安卓使用闪光灯
- 双线程间的通信
- android的动画之translate
- 解决Android单个dex文件不能超过65536个方法问题
- 第38讲-项目一-大奖赛计分(续一)