您的位置:首页 > 其它

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。

代码:

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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: