题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
class Solution {
public:
int StrToInt(string str)
{
bool flag=true;//正数
int num=0;
int k=0;
if(str.length()<0||str=="\0")
return 0;
if(str.length()>0&&str!="\0")
{
if(str[0]=='-')
{
flag=false;
k=1;
}
if(str[0]=='+')
{
flag=true;
k=1;
}
while(k<str.length())
{
if(str[k]>='0'&&str[k]<='9')
{
num=num*10+str[k]-'0';
k++;
}
else
{
return 0;
}
}
}
if(flag==true)
return num;
else
return -num;
}
};
public:
int StrToInt(string str)
{
bool flag=true;//正数
int num=0;
int k=0;
if(str.length()<0||str=="\0")
return 0;
if(str.length()>0&&str!="\0")
{
if(str[0]=='-')
{
flag=false;
k=1;
}
if(str[0]=='+')
{
flag=true;
k=1;
}
while(k<str.length())
{
if(str[k]>='0'&&str[k]<='9')
{
num=num*10+str[k]-'0';
k++;
}
else
{
return 0;
}
}
}
if(flag==true)
return num;
else
return -num;
}
};
其实还有一点要考虑的是数的益处问题,要提前和面试官讨论好,是不是大数;第二还有一点是要问好,如果字符串不是数字,返回什么,是不是要返回0会不会和数字0冲突,协商好