leetcode-String to Integer (atoi)-8
来源:互联网 发布:android 网络框架 编辑:程序博客网 时间:2024/04/29 03:18
这题目首先你要理解atoi函数的功能,然后去自己实现。
输入一个字符串,第一个非空字符是+、- 或者数字,否则直接输出0;符号后面必须必须是连续的数字(也就是数字前面最多紧接一个符号,否则输出0),遇到非数字就停止。
除了字符的格式还有就是注意整数的范围,INT_MAX,INT_MIN。我判断的地方不是很到位,所以后来直接在前面判断读入的数字的个数,如果超过10个,直接返回最大整数或最小整数。
“++123”输出0
“+ 123”输出0
“ 123”输出123
“+-123-1”输出0
“b123”输出0
class Solution {public: int myAtoi(string str) {int len=str.length();int i=0;int ans=0;int ad=0,su=0;int ok=1;int ok2=0;while(i<len){ if(!ok) break;if(str[i]=='+'){ad++;if(ad>1) return 0;ok2=1;}else if(str[i]=='-'){su++;if(su>1) return 0;ok2=1;}else if(str[i]>='0'&&str[i]<='9'){if(ad>0&&ad==su) return 0;ok=1;int cnt=0;int tmp[100];while(i<len){tmp[cnt++]=str[i++]-'0';if(i>=len||!(str[i]<='9'&&str[i]>='0')) break;}//for(int j=0;j<cnt;j++) cout<<tmp[j]<<" ";cout<<endl; if(cnt>10){ if(ad>=su) return INT_MAX; else return INT_MIN; }for(int j=0;j<cnt;j++){ans=ans*10+tmp[j];if(ans<0&&ad>=su) return INT_MAX;if(ans<0&&ad<su) return INT_MIN;// if(ans>=INT_MAX){// ans=ad<su?(ans*(-1)):INT_MAX;// if(ad<su&&ans<INT_MIN) ans=INT_MIN;// return ans;// }}if(ad<su) ans*=-1;break;}else if(str[i]!=' '&&!ok2) ok=0;else if(ok2) ok=0;i++;} return ans;}};
0 0
- LeetCode 8 - String to Integer (atoi)
- [LeetCode 8] String to Integer (atoi)
- leetcode 8STRING TO INTEGER (ATOI)
- Leetcode【8】:String to Integer(atoi)
- [leetcode 8] String to Integer (atoi)
- LeetCode(8) String To Integer(atoi)
- [leetcode 8] String to Integer (atoi)
- LeetCode 8:《String to Integer (atoi) 》
- leetcode.8---------------String to Integer (atoi)
- leetCode #8 String to Integer (atoi)
- [LeetCode Java] 8 String to Integer (atoi)
- leetcode 8 String to Integer (atoi)
- leetcode-8 String to Integer(atoi)
- LeetCode 8 String to Integer (atoi)
- LeetCode(8)String to Integer (atoi)
- LeetCode 8 - String to Integer (atoi)
- leetcode #8 String to Integer (atoi)
- String to Integer (atoi) - LeetCode 8
- 孪生素数
- 安卓OneNote登陆和同步问题
- 计蒜客-数正方形
- 创建一个Hibernate 的HelloWorld
- javascript简单工厂设计模式////javascript构造函数//////prototype原型介绍
- leetcode-String to Integer (atoi)-8
- Eclipse新建maven项目, ivy+ant项目或gradle项目
- SSM之DAO部分Spring与MyBatis整合
- Hdu-5301 Buildings(思维题)
- iOS内存优化常用方法
- Ubuntu14.04LTS root账户登录
- grunt使用小记
- Java RMI 入门指南
- 自动装配引起的Spring注入错误