按照顺序进栈,判断是否可以以给定序列出栈出栈

void solved() 
{
	int n;
	cin >> n;
    //储存出栈次序
	ifor(i, 0, n - 1)
	{
		cin >> a[i];
	}
	int temp = 1;
    //判断栈顶元素是否和即将要出栈的元素是否相等不相等继续向栈里面丢数据,
    //相等则删除栈顶,继续循环,知道栈的元素为空
    /*Determine whether the element at the top of the stack is equal to the element to be popped. 
    Continue to throw data into the stack. 
    If it is equal, delete the top of the stack and continue to loop until the element of the stack is empty.*/
	for (int i = 0; i < n&&temp<=n;)
	{
		das.push(temp++);
		while (!das.empty()&&das.top() == a[i])
		{
			das.pop();
			++i;
		}		
	}
	if (das.empty())
		cout<<"OK";
	else
		cout<<"NO";
	return;
}
全部评论

相关推荐

鼗:四级有点难绷,感觉能拿国家励志奖学金,学习能力应该蛮强的,四级确实不重要,但是拿这个卡你可是很恶心啊
点赞 评论 收藏
分享
Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务