[ZOJ 1004] Anagrams by Stack (简单搜索)

时间:2021-10-01 19:31:24

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1004

题目大意:给你个栈,给你源串和目标串,按字典序输出符合要求的进站出站序列。

就是搜搜搜呗。。。

带上答案和模拟的栈。。

代码:

 #include <cstdio>
#include <cstdlib>
#include <string>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cctype>
#include <vector>
#include <map>
#include <set>
#include <iterator>
#include <functional>
#include <cmath>
#include <numeric>
using namespace std; typedef long long LL; char s[],t[]; void dfs(int now,int pp,int len,string ns,string st){
if( pp==len ){
for(int i=;i<st.size();i++){
putchar(st[i]);
putchar(' ');
if( i==st.size()- ) puts("");
}
return;
}
if( st.size()==len+len ) return;
dfs(now+,pp,len,ns+s[now],st+"i");
if( !ns.empty() && ns[ns.size()-] == t[pp] ){
ns.erase(--ns.end());
dfs(now,pp+,len,ns,st+"o");
}
} int main(){
while(scanf("%s%s",s,t)!=EOF){
puts("[");
int len = strlen(s);
string aa,bb;
dfs(,,len,aa,bb);
puts("]");
}
return ;
}