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.
Update (2015-02-10):
The signature of the C++ function had been updated. If you still see your function signature accepts a
const char * argument, please click the reload button
to reset your code definition.
class Solution {
public:
int myAtoi(string str) {
int sign = 1, base = 0, i = 0;
while(str[i] == ' ') ++i;
if(str[i] == '+' || str[i] == '-'){
sign = (str[i++] == '-')?-1:1;
}
while(str[i] >= '0' && str[i] <= '9'){
if(base > INT_MAX/10 || (base == INT_MAX/10 && str[i] - '0' > 7)){
return (sign == 1)?INT_MAX:INT_MIN;
}
base = 10*base + (str[i++] - '0');
}
return base*sign;
}
};
本文详细解析了如何将一个字符串转换为整数的过程,并提供了具体的实现代码。文章讨论了多种可能的输入情况,包括空字符串、非法字符串以及处理正负号等问题。
2692

被折叠的 条评论
为什么被折叠?



