题意:
方法:
模拟
思路:直接模拟。
遍历字符串,判断字符:
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;
}
};
时间复杂度:
空间复杂度:![]()



京公网安备 11010502036488号