这个题目就是将字符串转化为整数,但是这个题目的要求比较少,没有考虑e,小数点等情况,只是很简单的字符串的转化,当不满足条件时,比如-+1,要输出0,虽然我觉得输出-1应该才对吧。。。还有一点是对溢出的判断,溢出的话,就输出边界值(INT_MAX或INT_MIN)还有对于正负数空格的判断,别的要求就没有了,代码如下,也比较简单。。。
class Solution {
public:
int myAtoi(string str) {
int ans = 0;
int i = 0;
int minas = 1;
while(str[i]==' ')
i++;
int size = str.length();
if(str[i]=='-'||str[i]=='+')
{
minas = str[i++]=='-'?-1:1;
}
while(i<size&&str[i]>='0'&&str[i]<='9')
{
if(ans > INT_MAX / 10 || (ans == INT_MAX / 10 && str[i] - '0' > 7))
return minas==1?INT_MAX:INT_MIN;
ans=ans*10+str[i++]-'0';
}
return minas*ans;
}
};