String to Integer (atoi)
终于通过了!又是一道easy的题目,这道题因为输入输出的要求非常之多,所以改了很长时间~
最后,终于,AC了!
因为不涉及算法方面的问题,所以比较不纠结~
代码具体如下:
int myAtoi(string str) {
long long result=0;
int len=str.length();
int start=0;
int num=0;
int flag=1;
int MAX_int=2147483647;
long long MIN_int=2147483648;
while(str[start]==' '){
start++;
}
for(int i=start;i<len;i++){
if(str[i]=='-' ||str[i]=='+'){
num++;
if(str[i]=='-')
flag=-1;
}
else
if(str[i]>'9' || str[i]<'0')
i=len;
else
result=(str[i]-'0')+result*10;
if(num>1)
return 0;
if(result>MIN_int)
i=len;
}
if( result>MAX_int && flag==1 )
result=MAX_int;
if(result>MIN_int && flag==-1)
result=MIN_int;
return flag*result;
}
另外,学到了一个知识点:int型的范围是[0x80000000, 0x7FFFFFF],转化为十进制数字为[-2147483648, 2147483647 ]~