這個題目就是將字符串轉化爲整數,但是這個題目的要求比較少,沒有考慮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;
}
};