#include <iostream>
#include <istream>
#include <sstream>
#include <vector>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <cstring>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <numeric>
#include <chrono>
#include <ctime>
#include <cmath>
#include <cctype>
#include <string>
#include <cstdio>
#include <iomanip>
#include <thread>
#include <mutex>
#include <condition_variable>
#include <functional>
#include <iterator>
using namespace std;
void Build(string& a, string& b, int aStart, int aEnd, int bStart, int bEnd) {
if (aStart > aEnd || bStart > bEnd) return ;
char val = a[aStart];
int index = find(b.begin() + bStart, b.begin() + bEnd + 1, val) - b.begin();
int len = index - bStart;
Build(a, b, aStart + 1, aStart + len, bStart, index - 1);
Build(a, b, aStart + len + 1,aEnd, index + 1, bEnd);
cout << val;
}
int main()
{
string a, b;
while (cin >> a >> b) {
int alen = a.size(), blen = b.size();
Build(a, b, 0, alen - 1, 0, blen - 1);
cout << endl;
}
return 0;
}
习题6-3(uva-536)
最新推荐文章于 2021-05-18 10:49:11 发布