c++如何解决栈的压入弹出序列问题
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,小编给大家分享一下c++如何解决栈的压入弹出序列问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!#define _CRT
千家信息网最后更新 2024年11月26日c++如何解决栈的压入弹出序列问题
小编给大家分享一下c++如何解决栈的压入弹出序列问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
#define _CRT_SECURE_NO_WARNINGS 1#include#include using namespace std;#include #include /*题目要求:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)*//*解题思路:利用一个栈,将pushV中的元素依次插入,若栈顶元素和popV中pos元素相等则pop栈顶元素并让pos指向下一个元素pushV中元素插入结束若栈为空则说明满足条件,否则不满足。*/class Solution {public: bool IsPopOrder(vector pushV, vector popV) { stack s; if (pushV.size() != popV.size()) { return false; } int i = 0; int j = 0; while (i < pushV.size()) { s.push(pushV[i++]); while (!s.empty() && s.top() == popV[j]) { s.pop(); j++; } } if (s.empty()) { return true; } else { return false; } }};int main(){ vector v1{1, 2, 3, 4, 5}; vector v2{ 4,5,3,2,1}; Solution s; int a=s.IsPopOrder(v1, v2); cout << a << endl; system("pause"); return 0;}
以上是"c++如何解决栈的压入弹出序列问题"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
序列
元素
篇文章
顺序
问题
c++
两个
内容
不怎么
大部分
思路
指向
数字
整数
更多
条件
知识
行业
资讯
资讯频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
linux简单服务器
山西诚信积分管理软件开发软件
利用网络技术开展农民教育培训
日照硕博软件开发
网络安全法类调研
中国用的服务器安全吗
提高数据库更新效率
软件开发成本最高
南京软件开发培训班多少钱
原神手机如何更换服务器
软件开发怎么那么贵
数据库技术与应用复合索引
网络安全副总
计算机网络技术的英语
过滤用户输入的数据库
qq数据库 快传下载
本科学大数据可以做软件开发吗
网络技术源代码定义
网牧网络技术有限公司
电子商务涉及到的网络技术
mysql数据库替代方案
奉贤区专业性软件开发技术指导
实验系统服务器功能
企业订单管理软件开发
上海c语言软件开发哪家实惠
单招生有上软件开发的专业吗
软件开发 案例题
yii 创建数据库
长春直销软件开发公司排名
2008数据库恢复