根据入栈顺序判断出栈顺序的合法性
1 string Judge(int n_values, int input [],int output[]) 2 { 3 assert(input && output && n_values > 0); 4 Stack<int ,100> s1; 5 string result; 6 s1.Push( input[0]);//为了防止数组越界访问造成崩溃,先将第一个数压栈开辟好数组空间 7 result.append(1, 'R');//因为有入栈操作 8 int out = 0; 9 int in = 1;//因为有入栈操作,所以入栈数组计数加1 10 while (out < n_values )//循环结束条件是完美的匹配了出栈顺序,出栈计数到达出栈数组末尾 11 { 12 if (in > n_values )//如果入栈计数先到达入栈数组末尾,证明没有数可以再入栈,但此时出栈数组还没走完,说明这个出栈顺序根本不可能完成 13 { 14 result = "这不可能!" ; 15 return result; 16 } 17 if (s1.Top() == output [out]) 18 { 19 s1.Pop();//当前栈顶元素恰好和出栈顺序的一样,赶紧出栈 20 result.append(1, 'C'); 21 out++; 22 } 23 else 24 { 25 s1.Push( input[in]);//栈顶元素和出栈数组的当前指向不一致,只能继续入栈 26 result.append(1, 'R'); 27 in++; 28 } 29 } 30 return result; 31 } 32
根据入栈顺序判断出栈顺序的合法性相关推荐
- 根据入栈顺序判断出栈顺序是否合理
def is_pop_order(push, pop):"""根据入栈顺序判断出栈顺序是否合理:param push: 入栈顺序:param pop: 出栈顺序:retu ...
- 判断出栈顺序是否正确
先说一下题目: 假设有一个栈S,每次我们可以把序列A(含N个元素)中的第一个元素移入栈S,也可以是从栈顶弹出一个元素放入出栈序列B.这 样,经过N次入栈和出栈操作后,我们可以得到一个出栈序列B. 现在 ...
- 判断出栈顺序的合法性(面试题)
判断出栈顺序的合法性 "栈"是一种限制性线性表,是将线性表的插入.删除操作限制为仅在表的一端进行,一般将能够插入.删除的一端称为栈顶,表的另一端称为栈底.当栈中没有元素时称为空栈. ...
- 【PAT甲】1051 Pop Sequence (25分)判断出栈顺序的合法性
problem 1051 Pop Sequence (25分) Given a stack which can keep M numbers at most. Push N numbers in th ...
- 判断出栈顺序合法性的两种方法
文章目录 今天偶然看到一个面试题, 题目是这样的: 给我们两个序列,第一个序列表示栈的压入顺序,然后让判断第二个序列是不是是否是该栈的弹出序列 现设第一个序列为[1,2,3,4,5],第二个序列为[3 ...
- java判断出栈顺序,java判断出栈顺序是否正确
java判断出栈顺序是否正确 我们知道栈是一种先进后出的数据容器.当一个栈的输入序列是递增序列(例如a,b,c,d),并且在进栈操作时,允许退栈操作,则输出的序列可能有多种形式(例如:d,c,b,a或 ...
- 给定入栈序列,判断出栈序列是否合法
题目:分别给定入栈序列和出栈序列,然后判断出栈序列是否合法.如入栈序列是[1,3,2,4,5],出栈序列[3,1,2,4,5]是合法的,[3,1,5,2,4]是不合法的. 思路: 判断出栈序列是否合法 ...
- 判断出栈序列合法性(c语言)
判断出栈序列合法性 描述 格式 样例 题解及注释 描述 有1.2.3.4.5.6.7这7个数字依次全部入栈后再出栈,在入栈的过程中栈中的数据也可以随时出栈,一直到整个栈为空.将出栈得到的数字依次排列, ...
- 数据结构实验之栈七:出栈序列判定
题目描述 给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依次.输入一个入栈序列,后面依次输入多个序列,请判断这些序列是否为所给入栈序列合法的出栈序列. 例如序列 ...
最新文章
- java 方法里面定义接口_java – 当接口A在其方法签名中定义接口B时
- 曝光 Facebook 内部高效工作 PPT 指南
- PHP封装对象名字的思路
- LeetCode 60. 第k个排列(回溯 康托展开)
- (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节1:I/O设备的概念和分类
- 计算机科学与技术文科可以学么,文科生成绩一般,大学可以选择计算机吗?
- Access-Control-Allow-Origin跨域问题的报错以及解决
- 【bzoj 3531】 [Sdoi2014]旅行(树链剖分+树套树)
- 走进C++程序世界-----函数相关(全局变量)
- Django访问静态资源
- 好用的码字软件,年入百万的大神作家们都在用
- php laravel mix,Laravel前端工程化之mix
- 7个实用方法,让你稳步提升记忆!
- 查看windows服务器型号,windows 查看服务器型号
- termios程序范例
- 关于.Net MAUI
- zookeeper入门到实战-阶段二(常用命令的使用)
- 领导管理团队的3个正确方法
- 重磅:2018逐浪字库样本发布
- mysql 基础命令进阶
热门文章
- 幼儿英语课前热身小游戏
- android 输入日语 外键盘,日语外来语怎么用键盘输入
- 采用DAWG方式在大批量字符串中查询字符串
- 建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内 如果需要在循环中引发异常,你需要特别注意,应为抛出异常是一个相当影响性能的过程。应该尽量在循环当中对异常发生的一
- http 请求包含哪几个部分,分别有何作用?
- Git详细使用大全- rebase, merge, switch, cherry-pick, tag
- 在TCP端口筛选只允
- 怪物猎人世界服务器小程序,坚守的猎人的最后礼物? 腾讯推出《怪物猎人世界》官方小程序...
- 索罗斯:国际银行家的金融黑客
- 使用Postman访问k8s RESTful API