您的位置:首页 > 其它

leetcode---String to Integer (atoi)

2016-04-02 17:42 423 查看
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.

class Solution {
public:
bool isNum(char a)
{
if(a < '0' || a > '9')
return false;
return true;
}
int myAtoi(string str) {
int result = 0;
int len = str.length();

int flag;
int i = 0;
while(str[i] == ' ') //去掉前面的空格
i++;
if((str[i] == '+' || str[i] == '-') && (str[i+1] == '+' || str[i+1] == '-'))
{
return 0;
}
else if(str[i] == '-')
{
flag = -1;
i++;
}
else if(str[i] == '+')
{
flag = 1;
i++;
}
else
{
flag = 1;
}

while(str[i] == '0')  //去掉前面的0
i++;

int j = i;
for(; i<len; i++)
{
if(!isNum(str[i]))
break;
result = result * 10 + str[i] - '0';
if(i-j >= 10 || result < 0)  //溢出
if(flag > 0)
return pow(2,31) - 1;
else
return pow(2, 31) * (-1);
}
return result * flag;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: