Leetcode 8 String to Integer (atoi)
来源:互联网 发布:网络工程项目名称 编辑:程序博客网 时间:2024/05/22 13:12
Implement atoi to convert a string to an integer.
Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.
Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.
Update (2015-02-10):
The signature of the C++
function had been updated. If you still see your function signature accepts a const char *
argument, please click the reload button to reset your code definition.
挺简单又挺难的一道题,就是坑太多,已经不是丧心病狂能形容了,估计这也是算法竞赛和这种面试题之间的区别吧。
好吧,我承认我WA了10发,坑点请看代码注释。
class Solution {public: int myAtoi(string str) { if(str.length()==0) // 1.空串 return 0; int flag=0,first=0; while(str[first]==' ')// 2.前置空格去除 first++; if(str[first]=='-') //3.负号 { flag=1; first++; } else if(str[first]=='+')//4.还尼玛能出现正号,正负号只在开头出现一次的是合法的 first++; if(str[first]<'0' || str[first]>'9') //5.除了正负号和数字还可能有其他字符,判为0 return 0; long long ans=0; int cnt=0; for(int i=first;i<str.length();i++) { cnt++; if(cnt>17) //6.位数过大溢出longlong,更不用说int了 { if(flag) return INT_MIN; else return INT_MAX; } if(str[i]<'0' || str[i]>'9') //7.中途出现其他字符要中断,但前面的数字依旧视为合法的 break; ans*=(long long)10; ans+=(long long)(str[i]-'0'); } if(flag) ans=-ans; if(ans>INT_MAX)//8.int溢出处理 return INT_MAX; if(ans<INT_MIN) return INT_MIN; return (int)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
- 百度加固
- Linux查看程序端口占用情况
- 一个算法问题,现有一千瓶药水,其中九百九十九瓶是完全一样的, 只有一瓶里面是毒药
- JNI常识
- 用户输入不期望的输入
- Leetcode 8 String to Integer (atoi)
- 数据库锁表原因分析
- Application.mk
- python 处理csv,对比两个csv的不同
- zabbix安装
- js简单倒数计时
- android UI进阶之弹窗的使用
- Ubuntu14.04下安装zbar
- 自动安装apk