將一個字符串轉換成一個整數,要求不能使用字符串轉換整數的庫函數。 數值爲0或者字符串不是一個合法的數值則返回0
輸入描述:
輸入一個字符串,包括數字字母符號,可以爲空
輸出描述:
如果是合法的數值表達則返回該數字,否則返回0
輸入例子:
+2147483647 1a33
輸出例子:
2147483647 0
這個題目沒啥難度,測試用例也不全,有空到leetCode做相應的那道題。要考慮到各種邊界情況:空串;有無正負號;只有正負號;錯誤標誌輸出;越界問題。這裏沒處理後兩種。
class Solution {
public:
int StrToInt(string str) {
if(str.empty())
return 0;
int res=0;
int start=0;
char sign='0';
if(str[0]=='+'||str[0]=='-'){
sign=str[0];
start=1;
}
for(int i=start;i<str.size();i++){
if(str[i]<'0'||str[i]>'9')
return 0;
else
res=10*res+(str[i]-'0');
}
if(res==0)
return 0;
else
return (sign=='-'?-res:res);
}
};