元素出入栈的合法性——栈和队列面试题(4)
来源:互联网 发布:联通数据卡流量查询 编辑:程序博客网 时间:2024/04/30 08:58
题目要求:元素的出,入栈顺序的合法性。如入栈{1,2,3,4,5,},出栈{4,5,3,2,1}
"test.cpp"
<strong><span style="font-size:18px;">#include<iostream>using namespace std;#include<assert.h>#include<stack>bool IsLegalOrder(int* arr1,int size1,int* arr2,int size2){assert(arr1);assert(arr2); stack<int> s;int j = 0;for(int i = 0;i < size1;i++){if(arr1[i] != arr2[j]){s.push(arr1[i]);}else{j++;}while(!s.empty() && s.top() == arr2[j]){s.pop();j++;}}if(j == size2){return true;}return false;}void test(){int arr1[] = {1,2,3,4,5};size_t size1 = sizeof(arr1)/sizeof(arr1[0]);//int arr2[] = {4,5,3,2,1}; //yes//int arr2[] = {2,4,5,3,1}; //yes//int arr2[] = {5,4,3,2,1}; //yesint arr2[] = {1,2,5,3,4}; //nosize_t size2 = sizeof(arr2)/sizeof(arr2[0]);bool ret = IsLegalOrder(arr1,size1,arr2,size2);if(ret){cout<<"yes"<<endl;}else{cout<<"no"<<endl;}}int main(){test();return 0;}</span></strong>
0 0
- 元素出入栈的合法性——栈和队列面试题(4)
- 元素出入栈的顺序合法性判断
- 栈和队列的面试题(五)---判断元素出栈、入栈顺序的合法性
- 判断出入栈的合法性
- 面试题(判断元素出栈入栈顺序的合法性。)
- 判断出栈顺序的合法性(面试题)
- 数据结构面试题/元素出栈,入栈顺序的合法性
- 判断出入栈序列的合法性 Stack Sequence
- 【面试题】栈和队列的面试题
- 队列和栈的面试题
- 栈和队列的常见面试题
- 栈和队列的面试题
- 栈和队列的相关面试题
- 栈和队列的相关面试题
- 栈和队列面试题(一)
- 栈和队列面试题(二)
- 栈和队列面试题(三)
- 栈和队列面试题(四)
- hdu 1022 Train Problem I(栈)
- Android SoundPool.play方法的音量与系统音量的关系
- php过滤html标记属性类用法实例
- 文章标题
- 安卓Service绑定方式启动服务并调用服务中的方法
- 元素出入栈的合法性——栈和队列面试题(4)
- MarkDown常用语法总结
- weight decay and learning rate
- ios 线程
- 文章标题
- 通俗理解数据库设计原则
- TrieMap 实现
- Web前端工程化的实践思路(二)——Web前端工程化的基础
- Android WebView:性能优化