概述
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;
else
return res*flag;
}
};
最后
以上就是粗暴云朵为你收集整理的Leetcode-String to Integer (atoi)的全部内容,希望文章能够帮你解决Leetcode-String to Integer (atoi)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复