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

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-09 12:05
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
07-09 15:55
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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