您的位置:首页 > Web前端

LintCode-剑指Offer-(54)转换字符串到整数

2015-12-05 12:51 375 查看
class Solution {
public:
/**
* @param str: A string
* @return An integer
*/
int atoi(string str) {
// write your code here

int sum=0;
int i = str.length()-1;
while (!(str[i]-'0'<=9&&str[i]-'0'>=0)){
str = str.substr(0,i);
i--;
}
i = 0;
int sign = 1;
while (str[i]==' ')
{
i++;
}
if (str[i]=='-'){
sign = -1;
i++;
}
else if (str[i]=='+'){
sign = 1;
i++;
}

bool numflag = false;
while (i<str.length()){
if (str[i]=='.')break;
if (!(str[i]-'0'<=9&&str[i]-'0'>=0)){
if (numflag==true)break;
return 0;
}
if (str[i]==' '){
i++;break;
}
sum = sum*10+str[i]-'0';
if (sum<0){//如果溢出了
if (sign==-1)
return -2147483648;
else return 2147483647;
}
i++;
numflag = true;
}
return sign*sum;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: