这个题的话,我自己处理的还是比较复杂的,先去处理空格,再去处理符号,接下来去看是否是数字,如果是数字循环,如果不是数字则退出,然后输出最后的结果,这里的话,如果溢出的话要先去看是正数还是负数再去看这个情况。
https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnoilh/

class Solution {
public:
    int myAtoi(string s) {
        unsigned int res=0;
        //消除前导空格
        int i=0,flag=1;
        while(s[i]==' '){
            i++;
        }
        //如果是减,
        if(s[i]=='-'){
            flag=-1;
            i++;
        }else if(s[i]=='+'){
            i++;
        }
        while(i<s.size()){
            if(s[i]>='0'&&s[i]<='9'){
                int tmp=res*10+(s[i]-'0');
                if(tmp/10!=res){
                    if(flag==1){
                        return pow(2,31)-1;
                    }else{
                        return flag*pow(2,31);
                    }
                }else{
                    res=tmp;
                }
                i++;
            }else{
                break;
            }
        }
        return res*flag;
    }
};