这个题的话,我自己处理的还是比较复杂的,先去处理空格,再去处理符号,接下来去看是否是数字,如果是数字循环,如果不是数字则退出,然后输出最后的结果,这里的话,如果溢出的话要先去看是正数还是负数再去看这个情况。
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; } };