您的位置:首页 > 其它

Leetcode-String to Integer (atoi)

2018-01-12 22:14 288 查看
Leetcode-String to Integer (atoi)题目描述:实现C++中的atoi函数,将字符串转换成整数。题目解析:这道题是一道最近面试比较高频的题。实验室的师兄去面试京东和美团都有问到过这个问题,因此准备面试的小伙伴们可以注意一下这道题。这道题我认为主要是要考虑到各种情况:  1. 最开始是空格,i++( 跳过空格)然后接下来接着去判断  2. 接下来就是正负号的情况。正负号只能在最前面,负号的话要转化为负数。  3. 之后就是判断是否是数字,如果出现不是,就break;   4. 这道题还是一个隐含的大数问题,因为要转为int型,所以超过int表示范围的,也无法进行转换。前面定义变量时,需要定义成long long型。对于超出范围的,不进行转换。对于是数组的字符如何去转换呢? 可以用公式 num = num * 10 + (str[i]-'0')*flag 按位进行转换。C++代码:class Solution {public:int myAtoi(string str) {int len = str.size();long long res = 0;int i = 0;int flag = 1;while (str[i] == ' ')i++;if (str[i] == '-'){flag = -1;i++;}else if (str[i] == '+'){i++;}for (int j = i; j<len&&res<INT_MAX; j++) {if (str[j] >= '0'&&str[j] <= '9'){res = res * 10 + str[j] - '0';}else{//res=0;break;}}if (res*flag>INT_MAX)return INT_MAX;else if (res*flag<INT_MIN)return INT_MIN;elsereturn res*flag;}};

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息