【剑指offer】面试题22:栈的压入、弹出序列
来源:互联网 发布:mysql手机客户端 编辑:程序博客网 时间:2024/06/17 03:22
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。
假设压入栈的所有数字均不相等,例如压栈序列:1、2、3、4、5。序列:4、5、3、2、1是该栈序列对应的一个弹出序列。
//思路:知彼知己方能百战不胜,哈哈。 我们现在判断栈的弹出顺序是否合法,那我们就必须掌握到栈的基本特性:后进先出,(每次弹出栈的栈顶),
//那我们知道了栈顶,根据压栈顺序,我们就能确定当前栈中元素摆放位置,在根据弹出,最后确定当前栈是否为空,为空,说明出栈顺序正确,否则,错误。
bool IsPopOrder(const int* pPush, const int* pPop, int nLength){ bool bPossible = false; if (pPush != NULL&&pPop != NULL&&nLength > 0) { const int* pNextPush = pPush; const int*pNextPop = pPush; std::stack<int>stackData; while (pNextPop - pPop < nLength) { while (stackData.empty() || stackData.top() != *pNextPop) { if (pNextPush - pPush == nLength) { break; } stackData.push(*pNextPush); pNextPush++; } if (stackData.top() != *pNextPop) { break; } stackData.pop(); pNextPop ++; } if (stackData.empty() && pNextPop - pPop == nLength) { bPossible = true; } } return bPossible;}
0 0
- 栈的压入、弹出序列(剑指offer面试题)
- 剑指offer面试题 栈的压入、弹出序列
- 剑指offer面试题 22 栈的压入、弹出序列的匹配
- 剑指offer面试题22栈的压入弹出序列
- 【剑指offer】面试题22:栈的压入弹出序列
- [剑指offer]面试题22:栈的压入、弹出序列
- 剑指Offer:面试题22 栈的压入、弹出序列
- 剑指offer 面试题22 栈的压入弹出序列
- 《剑指Offer》面试题22:栈的压入,弹出序列
- 《剑指Offer》学习笔记--面试题22:栈的压入、弹出序列
- 剑指offer--面试题22:栈的压入、弹出序列--Java实现
- 【剑指Offer学习】【面试题22:栈的压入、弹出序列】
- 剑指Offer面试题22(Java版):栈的压入、弹出序列
- 剑指offer代码解析——面试题22栈的压入、弹出序列
- 剑指offer-面试题22:栈的压入、弹出序列
- 剑指offer 面试题22:栈的压入、弹出序列 题解
- 剑指offer之面试题22:栈的压入、弹出序列
- 剑指offer之面试题22栈的压入、弹出序列
- solr教程,值得刚接触搜索开发人员一看(转载:http://blog.csdn.net/awj3584/article/details/16963525)
- 工作区变量的存储和调用
- PAT 银行排队问题之单窗口“夹塞”版 (队列+模拟) -- 解题报告
- 在线聊天、会议、远程教育系统开源技术方案
- caffe compilation: libopencv_highgui undefined reference to TIFF library
- 【剑指offer】面试题22:栈的压入、弹出序列
- 判断一个链表是否为回文结构
- 小议:人工智能
- Plesk镜像制作(脚本)
- 浅谈出版物的纸、电一体化新方向
- link numpy with openblas on Ubuntu 16.04
- Linux最简单的文件系统aufs剖析详解
- The packaging for this project did not assign a file to the build artifact
- Hill密码的加密与解密(C语言)