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

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;
}
全部评论

相关推荐

01-04 07:53
门头沟学院 C++
心愿便利贴:工作了以后回头再看待这个问题,从客观的视角来讲是因为每个人对自己的要求不同,学习好的人对自己的要求很高,所以觉得考不好就天塌了,认为自己学习好并且值得一份好工作的人也是一样,找不到符合自己预期的工作肯定也会觉得是侮辱,牛客上有很多名校大学生,肯定会存在这种好学生心态啊,“做题区”从来都不是贬义词,这是大部分普通人赖以生存的路径,这个有什么好嘲讽的,有“好学生心态”没有错,但是不要给自己太大的压力了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务