劍指Offer字串轉換成整數
阿新 • • 發佈:2018-11-19
題目描述
將一個字串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時返回0),要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是一個合法的數值則返回0。
思路
注意合法性判別即可
AC程式碼
class Solution { public: int StrToInt(string str) { if(str.empty()) { return 0; } else if((str[0] < '0' || str[0] > '9') && str[0] != '+' && str[0] != '-') { // 第一個不是合法的符號 return 0; } else if((str[0] == '+' || str[0] == '-') && str.length() == 1) { // 僅僅輸入符號的情況 return 0; } else if(str[0] > '0' && str[0] < '9') { // 無符號 for(int i = 0; i < str.length(); ++i) { // 合法性判別 if(str[i] < '0' || str[i] > '9') { return 0; } } } int res = 0; int n = 1; bool tag = false; for(int i = str.length() - 1; i >= 0; --i) { if(str[i] == '-') { tag = true; break; } else if(str[i] == '+') { break; } res += (str[i] - '0') * n; n *= 10; } if(tag) res = -res; return res; } };