本文主要是介绍leetcode 8: 字符串转整数 (atoi),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如果字符串前面有空格,先将空格删除,之后看第一个字符是不是‘+’或‘-’,再对后面的字符取0-9的数
int myAtoi(std::string str) {std::cout<<str.size()<<std::endl;if(str.size()==0)return 0;int j=-1;for(int i=0;i<str.size();i++){if(str[i]==' ')continue;else {j = i;str=str.substr(j);break;}}std::cout<<str.size()<<std::endl;if(j==-1)return 0;int flag=0;if(str[0]=='-'){flag=1;str=str.substr(1);}else if(str[0]=='+'){flag=0;str=str.substr(1);}std::vector<int> a;for(int i=0;i<str.size();i++){if(str[i]>='0'&&str[i]<='9'){a.push_back((int)(str[i]-48));}elsebreak;}if(a.size()==0)return 0;long sum=0;if(flag==0) {for (int i = 0; i < a.size(); i++) {sum = sum * 10 + a[i];if (sum >= 2147483647)return 2147483647;}}if(flag==1) {for (int i = 0; i < a.size(); i++) {sum = sum * 10 - a[i];if (sum <= -2147483648)return -2147483648;}}return sum;
}
这篇关于leetcode 8: 字符串转整数 (atoi)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!