剑指offer67:把字符串转换成整数
作者:互联网
思路:
首先,我们要跳过字符串前面的所有空格
再判断是否有+-号
然后计算整数大小
感觉判断是否是数字是贯穿整个程序的,然后在计算的时候也要考虑是否溢出,算是简简单单的模拟?
代码如下所示:
class Solution {
public:
int strToInt(string str) {
long res=0;
bool neg=false;
int index=0;
while(str[index]==' ')
{
++index;
}
int len=str.size();
if(index==len) return 0;
if(!isdigit(str[index])&&str[index]!='+'&&str[index]!='-')
{
return 0;
}
if(str[index]=='-')
{
index++;
neg=true;
}
else if(str[index]=='+')
{
index++;
}
while(index<len&&isdigit(str[index]))
{
res=res*10+str[index]-'0';
if(!neg&&res>INT_MAX)
{
return INT_MAX;
}
else if(neg&&-res<INT_MIN)
{
return INT_MIN;
}
index++;
}
return neg?-res:res;
}
};
结果如下所示:
标签:offer67,转换成,return,index,int,neg,++,str,字符串 来源: https://blog.csdn.net/weixin_46266058/article/details/122790586