NC14360. 求先序排列
描述
输入描述
两行,每行一个字符串,分别表示中序和后序排列
输出描述
一个字符串,表示所求先序排列
示例1
输入:
BADC BDCA
输出:
ABCD
C++ 解法, 执行用时: 6ms, 内存消耗: 408K, 提交时间: 2022-04-07 20:18:18
#include<bits/stdc++.h> #define ll long long using namespace std; string s1,s2; void g(int a, int a2, int b, int b2) { if(a>a2 || b>b2) return; ll i=a; while(s1[i]!=s2[b2]) i++; cout<<s1[i]; g(a,i-1,b,b+i-1-a); g(i+1,a2,b+i-a,b2-1); } int main() { cin>>s1>>s2; ll n=s1.length()-1; g(0,n,0,n); return 0; }