LeetCode *** 8. String to Integer (atoi)
2016-04-05 21:27
399 查看
题目:
Implement atoi to convert a string to an integer.
分析:
题目并没有说清楚具体有哪些string的输入方式,导致错误次数过多。
首先就是从正负号出现之前的空格要被去掉。
其次是出现正负号之后开始进行转换数,并且紧挨正负号的数/数与数之间不能有任意符号才能被计入,否则切断。
最后是int的范围问题,如果string为正数且>2147483647时,输出2147483647;string为负数且<-2147483648时,输出-2147483648。
代码:
Implement atoi to convert a string to an integer.
分析:
题目并没有说清楚具体有哪些string的输入方式,导致错误次数过多。
首先就是从正负号出现之前的空格要被去掉。
其次是出现正负号之后开始进行转换数,并且紧挨正负号的数/数与数之间不能有任意符号才能被计入,否则切断。
最后是int的范围问题,如果string为正数且>2147483647时,输出2147483647;string为负数且<-2147483648时,输出-2147483648。
代码:
class Solution { public: int myAtoi(string str) { int res=0; int sign=1; int curI=0; int length=str.length(); while(str[curI]==' ')curI++; if(str[curI]=='-'){ sign=-1; curI++; } else if(str[curI]=='+') curI++; int i=0; int first=str[curI]-'0'; while(curI<length){ if(str[curI]>='0'&&str[curI]<='9')res=res*10+str[curI]-'0'; else break; curI++; i++; } if((res<0)||(first>2&&i>9)||(i>10)){ if(sign==-1)return -2147483648; else if(sign==1)return 2147483647; } else return res*sign; } };
相关文章推荐
- LeetCode 9 Palindrome Number
- java.lang.UnsatisfiedLinkError: Native method not found
- ThinkPHP的静态化页面方法
- 简单的选项栏设置。
- c#调用c++ dll的一个例子
- Java入门:基础算法之求数组元素的和
- 软件工程结对作业02
- poj1061 青蛙的约会(扩展欧几里得)
- 鼠标设置感兴趣区域(ROI)
- php之文件载入include, include_once,require,require_once
- 【codevs 2981】题解
- LeetCode #002 Add Two Numbers
- JavaScript 防篡改对象
- POJ 2429 GCD & LCM Inverse(Pollard_rho法质因数分解)
- Jenkins插件之AnsiColor
- JavaMelody 系统监控软件
- Elasticsearch——Search的基本介绍
- Executing Raw SQL Queries using Entity Framework
- Libiconv裁剪
- 自定义 View 基础和原理