栈的简单应用
#include <stdlib.h>
#include <cstdio>
#include <iostream>
#include <queue>
#include <stack>
#include <string.h>
#include <math.h>
#include <algorithm>
#define mem(t, v) memset ((t) , v, sizeof(t))
#define INF 0x3f3f3f3f
#define eps 1e-8
using namespace std;
char in[30],out[30];
int put[60],topp=0;
stack<char>s;
int main(){
int flag=1;
cin.getline(in,30);
cin.getline(out,30);
int i,j=0;
int leni=strlen(in);
int leno=strlen(out);
for(i=0;i<leni;i++){
//printf("%c %c\n",in[i],out[j]);
if(in[i]==out[j]){
put[topp++]=2;
j++;
}
else {
while(!s.empty()){
char t=s.top();
if(t==out[j]){
s.pop();
put[topp++]=0;
j++;
}
else break;
}
s.push(in[i]);
put[topp++]=1;
}
}
while(!s.empty()&&j<leno){
char t=s.top();
s.pop();
put[topp++]=0;
if(t!=out[j++]){
flag=0;
break;
}
}
if(flag){
for(int i=0;i<topp;i++){
if(put[i]==2)printf("1->2\n");
else if(put[i]==1){
if(put[i+1]==0){
printf("1->2\n");
i++;
}
else printf("1->3\n");
}
else printf("3->2\n");
}
}
else {
printf("Are you kidding me?\n");
}
return 0;
}