首页 > 4.26腾讯笔试1 4题输入问题 怎么都AC不了
头像
DanQAQ
发布于 2020-04-26 22:17
+ 关注

4.26腾讯笔试1 4题输入问题 怎么都AC不了

第一第四题比较类似,对于push和add的操作我都是直接getline一行的,然后再把数字提取出来,为什么都不成功呀,有大佬能帮我看看问题出在哪里么?
#include<iostream>
#include<bits/stdc++.h>

using namespace std;


void push(vector<int> &data, int x)
{
	data.push_back(x);
}
void top(vector<int> &data)
{
	if (data.empty()) cout << -1 << endl;
	else {
		cout << data[0] << endl;
	}
}
void pop(vector<int> &data)
{
	if (data.empty()) cout << -1 << endl;
	else {
		vector<int>::iterator k = data.begin();
		data.erase(k);
	}
}
void size(vector<int> &data)
{
	cout << data.size() << endl;
}
void clear(vector<int> &data)
{
	data.clear();
}


int main()
{
	int T;
	cin >> T;
	cin.ignore();
	vector<vector<string>> vec;
	vector<int> data;
	for (int i = 0; i < T; ++i)
	{
		int Q;
		cin >> Q;
		cin.ignore();
		vector<string> temp;
		for (int j = 0; j < Q; ++j)
		{
			string s;
			getline(cin, s);
			temp.push_back(s);
			s.clear();
		}
		vec.push_back(temp);
		temp.clear();
	}

	for (int i = 0; i < vec.size(); ++i)
	{
		for (int j = 0; j < vec[i].size(); ++j)
		{
			if (vec[i][j] == "TOP") top(data);
			else if (vec[i][j] == "POP") pop(data);
			else if (vec[i][j] == "SIZE")size(data);
			else if (vec[i][j] == "CLEAR") clear(data);
			else {
				auto kongge = vec[i][j].find_first_of(' ');
				vec[i][j].erase(0, 5);
				int temp;
				stringstream ss(vec[i][j]);
				ss >> temp;
				push(data, temp);
			}
		}
	}

	return 0;
}

全部评论

(16) 回帖
加载中...
话题 回帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐