解題心得
很多 edge case 需要考慮的一題。
程式碼
class Solution {
public:
int myAtoi(string s) {
long double ans = 0;
int i=0;
bool isPositive = true;
while(s[i] == ' ')
i++; // ignore the leading whitespace
if(s[i] == '-')
{
isPositive = false;
i++;
}
else if(s[i] == '+')
{
isPositive = true;
i++;
}
for(; i<s.size(); i++)
{
if(s[i] > '9' || s[i] < '0')
break;
ans = ans * 10 + s[i] - '0';
}
if(!isPositive) ans *= -1;
if(ans > INT_MAX) return INT_MAX;
else if(ans < INT_MIN) return INT_MIN;
return ans;
}
};
沒有留言:
張貼留言