题解 | #把字符串转换成整数#
把字符串转换成整数
http://www.nowcoder.com/practice/1277c681251b4372bdef344468e4f26e
遍历字符串,在第一个字符处判断是否为正负号,之后依此判断是否有非数字字符,将字符作为数字加入int数组中。
最后得到一个数组,其中装有我们所需要的数字,遍历该数组,将该数组中的数字转为一个整数即可。
实际上这里用另一种做法,每次都加上新的数字然后乘10,也可以,这种做法不需要辅助数组。
class Solution {
public:
int StrToInt(string str) {
if(str.empty()){
return 0;
}
vector<int> arr;
bool isPos = true;
for(int i = 0;i < str.size();i++){
if(i == 0){
if(str[i] == '+'){
continue;
}
else if(str[i] == '-'){
isPos = false;
continue;
}
}
if(str[i] - '0' < 0 || str[i] - '0' > 9){
return 0;
}
else{
arr.push_back(str[i] - '0');
}
}
int num = 0;
for(int i = 0;i < arr.size();i++){
num += arr.at(i) * pow(10, arr.size() - i - 1);
}
if(!isPos){
num *= -1;
}
return num;
}
};