我是靠谱客的博主 粗暴云朵,最近开发中收集的这篇文章主要介绍Leetcode-String to Integer (atoi),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部