返回信息流入栈和出栈都是ABABA,共有几种情况?有规律吗
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #90654同步于 2016/7/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
请教一个栈的问题
breakdawn
2016/7/28镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
```cpp
#include <string>
#include <vector>
#include <cstdio>
using namespace std;
string pushSequence="ABABA";
string popSequence="ababa";
vector<char>currentSequence;
vector<char>validSequence;
int pushpos=0;
int poppos=0;
void dfs()
{
if(pushpos==pushSequence.size()&&poppos==popSequence.size()) {
for(int i=0;i<validSequence.size();i++) {
putchar(validSequence[i]);
}
putchar('\n');
return ;
}
if(pushpos<pushSequence.size()) {
validSequence.push_back(pushSequence[pushpos]);
currentSequence.push_back(pushSequence[pushpos]);
pushpos++;
dfs();
pushpos--;
currentSequence.pop_back();
validSequence.pop_back();
}
if(!currentSequence.empty()) {
char element = currentSequence.back();
currentSequence.pop_back();
if(element == toupper(popSequence[poppos])) {
validSequence.push_back(popSequence[poppos]);
poppos++;
dfs();
poppos--;
validSequence.pop_back();
}
currentSequence.push_back(element);
}
}
int main()
{
dfs();
return 0;
}
```
谢谢!我手动列出了7种
【 在 hiyot (hiyot) 的大作中提到: 】
: [md]
: ```cpp
: #include <string>
: ...................