奇安信0816笔试第一题0第二题0.8

第一题不再多说,如果说题目有问题,我相信这么大的公司会出来解释的,如果不解释,那也没办法,谁叫咱是求职者呢,对方有最终解释权。
第二题80%,不知道哪儿错了,求大佬讲解,我自己试过在原来位置恢复和在当前位置之后恢复原来的字符串两种,比如:hello undo world redo 是输出hello world 呢 还是 输出 world hello 呢?两种我都试过,都是80%,我最后交的第一种。下面贴上代码:
#include<iostream>
#include<vector>
#include<stack>
#include<functional>
#include<string>
#include<sstream> //方便读入分割字符串,看不懂不用管

using namespace std;

int main()
{
	cout.sync_with_stdio(false); //加速读取的操作与stringstream 同用
	string s;
	while (getline(cin, s))
	{
		vector<string> res;
		stringstream line(s);
		stack<pair<string, int>> pres;
		string ss;
		while (line >> ss)
		{
			if (ss == "undo")
			{
				if (res.size()>0)
				{
					int pos = (int)res.size() - 1;
					string temp = res[pos];
					res.pop_back();
					pres.push({ temp, pos });
				}
			}
			else if (ss == "redo")
			{
				if (pres.size()>0)
				{
					auto t = pres.top();
					pres.pop();
					int pos = t.second;
					string temp = t.first;
					res.insert(res.begin() + pos, temp);
				}
			}
			else
			{
				res.push_back(ss);
			}
		}
		string ans = "";
		for (int i = 0; i<res.size(); i++)
		{
			if (i != res.size() - 1)
			{
				ans += res[i] + " ";
			}
			else
			{
				ans += res[i];
			}
		}
		cout << ans;
	}
	return 0;
}


#笔试题目##奇安信#
全部评论
 我也第一题0,我就一行代码return (int)Math.pow(2,num_money-1); 我会不会题目理解错了😥
2 回复 分享
发布于 2020-08-16 17:02
push一个普通字符串时 清空 undo 的buf
1 回复 分享
发布于 2020-08-16 17:02
同,第一0,第二0.8
1 回复 分享
发布于 2020-08-16 17:06
一样 0 0.8
1 回复 分享
发布于 2020-08-16 17:06
加一
点赞 回复 分享
发布于 2020-08-16 17:01
  🤝     🤝     🤝
点赞 回复 分享
发布于 2020-08-16 17:02
第一题,前n-1项求和+1    20%。😂
点赞 回复 分享
发布于 2020-08-16 17:04
0.8可能是没有考虑undo word redo的情况吧?这个时候undo的stack就失效了。
点赞 回复 分享
发布于 2020-08-16 17:07
第一题 题意一次能给 1-n 块钱,oj 是按1,2,3来判的 第二题 也没get到题意,以为只能undo一次 gg 这么大的公司出题还是说清楚一点好吧 哎
点赞 回复 分享
发布于 2020-08-16 17:16
https://www.nowcoder.com/discuss/479003?toCommentId=6833372
点赞 回复 分享
发布于 2020-08-16 18:14

相关推荐

榕城小榕树:你别说,你还真别说,计算机实习薪资跟这个差不多
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务