其他分享
首页 > 其他分享> > 剑指offer67:把字符串转换成整数

剑指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