LeetCode-7-Reverse Integer(Nmber-Strng)-Easy
来源:互联网 发布:杨君优化人生全本 编辑:程序博客网 时间:2024/05/29 13:08
题意分析:
将输入整数进行反转,如果反转后的数已超过整数范围(-2147483648~2147483647),则返回0;
解题分析:
1. 注意int32的范围越界(返回0);
2. 打印输出时避免最高位为0的情况,如00233;
4. 使用string类型标示输入和变换,规避取值范围的越界;
3.使用stringstream实现整数和string之间的转换;
5.不能使用__int64类型;
解题代码:
#include<sstream>#include<string>#include<math.h>using namespace std;#define MAX_INT32 2147483648#define SUB_MAX_INT32 147483648class Solution {private:bool isINT32(string s){int maxNumLen;if(s[0]=='-'){maxNumLen=11;}else{maxNumLen=10;}if(s.length()>maxNumLen){return false;}else if(s.length()==maxNumLen){string intS;if(s[0]=='-'){if(s[1]>'0'+2){return false;}else{intS=s[0]+s.substr(2);}}else{if(s[0]>'0'+2){return false;}else{intS=s.substr(1);}}stringstream ss;ss<<intS;int subNum;ss>>subNum;if(subNum>SUB_MAX_INT32-1 || subNum<SUB_MAX_INT32*-1){return false;}}return true;}public: int reverse(int x) { stringstream ss1; ss1<<x; string s; ss1>>s; cout<<"s= "<<s<<endl; string reverseS=""; int endIndex; if(s[0]=='-'){ reverseS+='-'; endIndex=1; }else{ endIndex=0; } for(int i=s.length()-1;i>=endIndex;i--){ reverseS+=s[i]; } cout<<"reverseS="<<reverseS<<endl; if(isINT32(reverseS)){ stringstream ss2; ss2<<reverseS; int ans; ss2>>ans; return ans; }else{ return 0; } }};
使用__int64的解题代码:
#include<sstream>#include<string>#include<math.h>using namespace std;#define MAX_INT32 2147483648class Solution {public: int reverse(int x) { stringstream ss1; ss1<<x; string s; ss1>>s; //cout<<"s= "<<s<<endl; string reverseS=""; int endIndex; if(s[0]=='-'){ reverseS+='-'; endIndex=1; }else{ endIndex=0; } for(int i=s.length()-1;i>=endIndex;i--){ reverseS+=s[i]; } __int64 i64; //cout<<"reverseS= "<<reverseS<<endl; stringstream ss2; ss2<<reverseS; ss2>>i64; cout<<"i64= "<<i64<<endl; if(abs(i64)<=MAX_INT32){ return (int)i64; } return 0; }};
0 0
- LeetCode-7-Reverse Integer(Nmber-Strng)-Easy
- [Leetcode 7, Easy] Reverse integer
- 【LeetCode】(7)Reverse Integer(Easy)
- LeetCode #7 - Reverse Integer - Easy
- 【Leetcode】Reverse Integer(easy)
- LeetCode OJ 7 Reverse Integer [easy]
- Reverse Integer(EASY)
- Easy 2 Reverse Integer(7)
- LeetCode 第7题 Reverse Integer (easy)——python
- LeetCode刷题(C++)——Reverse Integer(Easy)
- LeetCode(7)Reverse Integer
- LeetCode (7)Reverse Integer
- Easy 7题 Reverse Integer
- 7. Reverse Integer (Easy)
- Leetcode 7. Reverse Integer (Easy) (cpp)
- Leetcode算法练习-easy篇-Reverse Integer
- LeetCode-Easy刷题(2) Reverse Integer
- LeetCode 7 - Reverse Integer
- 创业者融资攻略:什么时候可以“视金钱如粪土”?
- [转]在SpringMVC中获取request对象的几种方式
- 【代码笔记】iOS-传身份证号码可返回生日字符串
- 第16周项目1-选择排序之堆排序(6)
- 第14周项目1-(2)验证分块查找算法
- LeetCode-7-Reverse Integer(Nmber-Strng)-Easy
- Joomla获取某项目录的地址
- 乔布斯:人生的秘密
- 第十一周 项目1 二叉树的层次遍历算法
- 第十六周项目(2):大数据集上排序算法性能的体验
- android 解决ScrollView嵌套ListView的问题,不能全屏,全屏不能显示下面控件
- 第十二周项目四----利用遍历思想求解图问题之6最短路径
- 设置父视图的透明度与子视图的关系
- 关于linux内核学习的误区以及相关书籍介绍