题意:
方法:
模拟
思路:直接模拟。
遍历字符串,判断字符:
1.如果是数字,则追加成数字;
2.如果是正负号,则标记正负;
3.如果是空格,则忽略;4.如果是其他字符,则退出循环。
class Solution { public: int atoi(const char *str) { int len=strlen(str); int res=0; int flag=1;//判断正负号 for(int i=0;i<len;i++){//遍历字符串 if(isdigit(str[i])){//数字 res=res*10+str[i]-'0'; }else if(str[i]=='+'){//正号 flag=1; }else if(str[i]=='-'){//负号 flag=-1; }else if(str[i]==' '){//空格 continue; }else{//其他情况,退出循环 break; } } return flag*res; } };
时间复杂度:空间复杂度: