劍指offer____把字串換成整數
阿新 • • 發佈:2018-11-15
題目描述
將一個字串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時返回0),要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是一個合法的數值則返回0。
輸入描述:
輸入一個字串,包括數字字母符號,可以為空
輸出描述:
如果是合法的數值表達則返回該數字,否則返回0
class Solution { public: int StrToInt(string str) { if(str.size()== 0 || str[0] == '0') return 0; bool flag = true; int result = 0; if(str[0] == '+') { flag = true; } else if(str[0] == '-') { flag = false; } else if(!isdigit(str[0])) { return 0; } vector<int>con; for(int i = 0; i < str.size(); ++i) { if(str[i] == '+' ||str[i] == '-') continue; if(isdigit(str[i])) { con.push_back(str[i] - '0'); } else { return 0; } } int j = 1; for(int i = con.size() - 1; i >= 0; i--) { result += con[i] *j; j *=10; } if(!flag) { result = -result; } return result; } };