话不多说,直接上代码
#include <bits/stdc++.h>
using namespace std;
vector<string> ans;
int main() {
string a, b;
cin >> a >> b;
stack<char> q1;
int idx = 0;
for (int i = 0; i < a.size(); i++) {
while (!q1.empty() && q1.top() == b[idx]) {
ans.push_back("3->2");
q1.pop();
idx++;
}
if (a[i] == b[idx]) {
ans.push_back("1->2");
idx++;
} else {
q1.push(a[i]);
ans.push_back("1->3");
}
if (idx == b.size()) {
for (const string &op : ans) {
cout << op << endl;
}
return 0;
}
}
while (!q1.empty() && q1.top() == b[idx]) {
ans.push_back("3->2");
q1.pop();
idx++;
}
if (idx != b.size()) {
cout << "Are you kidding me?" << endl;
} else {
for (const string &op : ans) {
cout << op << endl;
}
}
return 0;
}