- 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
- C++ 代码
class Solution {
public:
int StrToInt(string str) {
if(str.empty()) return 0;
int len = str.size();
if(len == 1){
if(str[0]>'0'&&str[0]<'9') return 1;
else return 0;
}
else{
int flag=1;
if(str[0]=='+'||str[0]=='-')
{
for(int i=1;i<str.size();i++)
if(str[i]>'0'&&str[i]<'9')continue;
else{
flag=0;
break;
}
if (flag==0) return 0;
else
{
if(str[0]=='+') return summary(str,1,1);
else return summary(str,1,0);
}
}
else
{
for(int i=0;i<str.size();i++)
if(str[i]>'0'&&str[i]<'9')continue;
else{
flag=0;
break;
}
}
if(flag==0) return 0;
else return summary(str,0,1);
}
}
int summary(string s,int start,int tag)
{
int sum=0;
for(int i=start;i<s.size();i++)
sum=(s[i]-'0')+sum*10;
return tag==1?sum:0-sum;
}
};
网友评论