华为OJ 铁路栈问题
2014-03-27 18:39
197 查看
/****************************************************************************** Copyright (C), 2001-2011, Huawei Tech. Co., Ltd. ****************************************************************************** File Name : Version : Author : Created : 2013/08/10 Last Modified : Description : Function List : History : 1.Date : 2013/08/10 Author : Modification: Created file ******************************************************************************/ #include <stdlib.h> #include <string.h> #include <stdio.h> #include <queue> #include <stack> using namespace std; /* 详细描述: int JudgeTrainSequence (int maxNum, char *pOutSeq); 输入参数: int maxNum:进站的火车最大编号 char* pOutSeq:使用字符串表示火车出站序列 输出参数(指针指向的内存区域保证有效): 无。 返回值: Int: 根据输入的进站序列判断,如果输入的出战序列是可能的,返回1,否则返回0; */ int JudgeTrainSequence (int maxNum, char *pOutSeq) { int result=true; queue<int> inTrains; stack<int> swapTrains; for(int i=1;i<=maxNum;i++) inTrains.push(i+'0'); int outTrainIndex=0; while(outTrainIndex<maxNum) { if(!swapTrains.empty()&&swapTrains.top()==pOutSeq[outTrainIndex]) { swapTrains.pop(); outTrainIndex++; } else if(!inTrains.empty()) { if(inTrains.front()==pOutSeq[outTrainIndex]) { inTrains.pop(); outTrainIndex++; } else { swapTrains.push(inTrains.front()); inTrains.pop(); } } else { result=false; break; } } return result; }
相关文章推荐
- 华为OJ 高级题(一) 铁路栈问题
- 华为OJ 迷宫问题
- 华为OJ迷宫问题
- 全排列——火车进站问题(华为OJ)
- 火车进站问题的求解——华为OJ高级难度题目
- 合唱队问题的求解——华为OJ题目
- 华为OJ 约瑟夫问题
- 【华为OJ】百钱买百鸡问题
- [华为oj]百钱百鸡问题
- 【华为OJ】迷宫问题
- 华为OJ 一个精度问题
- 华为OJ训练 之 括号配对数目问题
- 华为OJ之N皇后问题(C++代码)
- 华为oj-购物单(依赖背包问题)
- 华为OJ训练之0013-170101-百钱百鸡问题
- 华为OJ--------迷宫问题
- Java算法---华为oj迷宫问题求解(深度优先搜索)
- 华为OJ-岛屿个数问题
- 华为OJ平台——放苹果(典型整数划分问题)
- 华为OJ平台——百钱买百鸡问题