原題鏈接 https://leetcode.com/problems/string-to-integer-atoi/
Implement atoi to convert a string to an integer.
Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.
Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.
實現atoi的功能。
我就說一下有一些注意的地方。
- 字符串開始可能有空白符需要跳過。
- 正負數的情況。
- 數值超過了int的表示範圍
class Solution {
public:
int myAtoi(string str) {
int pos = 0;
long long ans = 0;
bool sign = true;
while (str[pos] == ' ')pos++;
if (str[pos] == '-')sign = false, pos++;
else if(str[pos] == '+')pos++;
while (pos < str.length())
{
int tmp = str[pos] - '0';
if(tmp >= 0 && tmp <= 9)ans = ans * 10 + tmp;
else break;
if (ans > INT_MAX || ans < INT_MIN)return sign ? INT_MAX : INT_MIN;
pos++;
}
return sign ? ans : -ans;
}
};