[剑指offer]面试题22:栈的压入、弹出序列
来源:互联网 发布:上古卷轴5优化补丁 编辑:程序博客网 时间:2024/06/08 07:56
这道题,我第一看到,觉得很简单,思路很清晰,例子运行的也很好,
但是到了自己写代码的时候出现很大问题了,自己不清楚具体该怎么写了。
特意将书上的代码贴在这儿,以备复习时用;
bool IsPopOrder(const int* pPush, const int* pPop, int nLength){ bool isPopOrder = false; if(pPush != NULL && pPop != NULL && nLength > 0){ const int *pNextPush = pPush; const int *pNextPop = pPop; std::stack<int> tempStack; while(pNextPop - pPop < nLength){ while(tempStack.empty() || tempStack.top() != *pNextPop){ if(pNextPush - pPush == nLength) break; tempStack.push(*pNextPush); pNextPush++; } if(tempStack.top() != *pNextPop) break; tempStack.pop(); pNextPop++; } if(tempStack.empty() && pNextPop - pPop == nLength) isPopOrder = true; } return isPopOrder;}int main(){ int pPush[]={1,2,3,4,5}; int pPop[] = {4,5,3,2,1}; cout << IsPopOrder(pPush, pPop, sizeof(pPush)/sizeof(int)) << endl; cout << endl;}
PS:复习的时候,东西看仔细些。
后记:这道题还有一种方法,space:O(n^2),空间复杂度:O(1)
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栈的压入、弹出序列
- 数据库相关学习
- IBM的界面设计原则阅读笔记
- telnet不能用,提示:-bash: telnet: command not found
- 7715平台修改BUG记录
- 排序汇总
- [剑指offer]面试题22:栈的压入、弹出序列
- android camera 学习
- 基于zxing内核的二维码扫描
- 不用+、-、×、÷数字运算符做加法
- Box Relations
- Android 编译脚本浅析
- 常见的设备在linux当中的文件名
- 黑马程序员 java学习笔记——枚举
- Ubuntu安装brackets