求字符串转整数
1.题目描述
2.题目链接
3.解题方法
牛客代码:
class Solution {
public:
int StrToInt(string str)
{
int signal=1;
double ret=0;
for(int i=0;i<str.size();i++)
{
if(str[i]<'0'||str[i]>'9')
{
if(str[i]=='+')
{
signal=1;
}
else if(str[i]=='-')
{
signal=-1;
}
else
{
return 0;
}
}
else
{
ret=ret*10+str[i]-'0';
}
}
if(ret*signal>=INT_MAX)
{
return INT_MAX;
}
if(ret*signal<=INT_MIN)
{
return INT_MIN;
}
ret=ret*signal;
return ret;
}
};
力扣代码:
class Solution {
public:
int strToInt(string str)
{
int i=0;
int signal=1;
double ret=0;
if(str.size()==0)
{
return 0;
}
while(i<str.size()&&str[i]==' ') //去掉空格
{
i++;
}
if(str[i]=='-') //处理第一个符号
{
signal=-1;
}
if(str[i]=='-'||str[i]=='+') //跳过正负号
{
i++;
}
if(str[i]<'0'||str[i]>'9') //判断是否为有效字符
{
return 0;
}
while(str[i]>='0'&&str[i]<='9')
{
ret=ret*10+str[i]-'0';
i++;
}
if(ret*signal>=INT_MAX)
{
return INT_MAX;
}
if(ret*signal<=INT_MIN)
{
return INT_MIN;
}
ret=ret*signal;
return ret;
}
};