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

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

相关推荐

点赞 评论 收藏
分享
07-07 17:06
已编辑
深圳技术大学 golang
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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