库你急哇,哈集美马戏特~~
确认过眼神,是我看不懂的题解。
学过计算机组成原理的同学,据说有一种方法是有限状态机,可以试一试哦(-_-)
题目:
力扣官网题目链接
上代码(经过线上OJ测试)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int myAtoi(char * s){
int INTMAX=(int)(pow(2,31)+0.5);
int INTMIN=-(int)(INTMAX+1);
int i=0,negative=0;
int result=0;
while(s[i]==' ')
{
i++;
}
if(s[i]=='-'||s[i]=='+')
{
if(s[i]=='-')
{
negative=1;
}
i++;
}
while(s[i]>='0'&&s[i]<='9')
{
if(negative==0)
{
if(result>INTMAX/10||(result==INTMAX/10&&s[i]>'7'))
{
return INTMAX;
}
result=result*10+(s[i]-'0');
}
if(negative==1)
{
if(result<INTMIN/10||(result==INTMIN/10&&s[i]>'8'))
{
return INTMIN;
}
result=result*10+(-(s[i]-'0'));
}
i++;
}
return result;
}
int main()
{
char x[]="2147483648";
printf("%d",myAtoi(x));
return 0;
}