您的位置:首页 > 其它

String to Integer(ATOI) leetcode

2014-10-22 16:00 281 查看
对题目的理解:

1.前面如果有其他的字符,只能是空格,若有其他字符也是非法

2.前面只能有一个+ - 或者没有,如果出现 +-2,或者 ++ 2,也是非法

3.越界非法

吐槽一句,恶心死我了。。。

class Solution {
public:
int atoi(const char *str) {
int max =2147483647 ;
int  min =-2147483648;
int len = strlen(str);
if(len < 1)
return 0;
int i=0;
double sum=0;
bool flag = false , tag = false;
while(i < len && str[i] == ' '){
++i;
}
if(str[i] == '+')
i++;
else if(str[i] == '-'){
flag = true;
++i;
}
if(str[i] < '0' || str[i] > '9' || i >len)
return 0;
while(str[i] >= '0' && str[i] <= '9' && i<len ){
sum = sum*10 + (str[i]-'0');
++i;

}
if(flag)
sum = 0-sum ;
if(sum > max)
return max;
if(sum < min)
return min;
return sum;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: