栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ 带逗号输入数组(大厂笔试输入出现多次)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ 带逗号输入数组(大厂笔试输入出现多次)

1、第一种情况

输入形式:

输入的数据在nums中保存

1,2,3,4,60,70,5
# include
# include
# include
using namespace std;

int main() {
	string s;
	cin >> s;
	int start = 0;
	int num = 0;
	vector nums;
	for (int i = 0; i < s.size(); i++) {
		if (s[i] == ',') {
			string temp = s.substr(start, i - start);
			nums.push_back(atoi(temp.c_str()));
			num++;
			start = i + 1;
		}
	}
	string temp = s.substr(start, s.size() - start + 1);
	nums.push_back(atoi(temp.c_str()));

	for (int i = 0; i < nums.size(); i++) {
		cout << nums[i] << " ";
	}

	system("pause");
	return 0;
}

2、第二种情况:

输入形式:

在nums 数组中保存

8
1,2,30,100,50,2,7,5

输出形式:

1 2 30 100 50 2 7 5

代码:

# include
# include
# include
using namespace std;

int main() {
	int n;
	cin >> n;
	string s;
	cin >> s;
	int start = 0;
	int num = 0;
	vector nums;
	for (int i = 0; i < s.size(); i++) {
		if (s[i] == ',') {
			string temp = s.substr(start, i - start);
			nums.push_back(atoi(temp.c_str()));
			num++;
			start = i + 1;
		}
		if (num == n - 1) {
			string temp = s.substr(start, s.size() - start + 1);
			nums.push_back(atoi(temp.c_str()));
			break;
		}
	}

	for (int i = 0; i < n; i++) {
		cout << nums[i] << " ";
	}

	system("pause");
	return 0;
}
3、第三种情况:

非重叠区间的总长度

在nums 二维数组中保存

# include
# include
# include
# include
using namespace std;


static bool cmp(vector& a, vector& b) {
	if (a[0] == b[0]) {
		return a[1] < b[1];
	}
	return a[0] < b[0];
}

int main() {
	int n;
	cin >> n;
	vector str;
	for (int i = 0; i < n; i++) {
		string mys;
		cin >> mys;
		str.push_back(mys);
	}
	vector> nums;
	int t = 0;
	while (t < n) {
		vector q;
		string s = str[t];
		int start = 0;
		int num = 0;
		for (int i = 0; i < s.size(); i++) {
			if (s[i] == ',') {
				string temp = s.substr(start, i - start);
				q.push_back(atoi(temp.c_str()));
				num++;
				start = i + 1;
			}
			if (num == 1) {
				string temp = s.substr(start, s.size() - start + 1);
				q.push_back(atoi(temp.c_str()));
				break;
			}
		}
		t++;
		nums.push_back(q);
	}

	sort(nums.begin(), nums.end(), cmp);

	int sum = 0;
	int l = nums[0][0];
	int r = nums[0][1];
	for (int i = 1; i < nums.size(); i++) {
		int l1 = nums[i][0];
		int r1 = nums[i][1];
		if (r <= l1) {
			sum += (r - l);
			l = l1;
			r = r1;
		}
		else if (r > l1 && r1 > r) {
			sum += (l1 - l);
			l = r;
			r = r1;
		}
		else if (r > l1 && r1 <= r) {
			sum += (l1 - l);
			l1 = r1;
			r = r;
		}
	}
	sum += r - l;
	cout << sum << endl;
		
	system("pause");
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/846768.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号