求后序遍历

// 求后序遍历
#include <bits/stdc++.h>
using namespace std;

string s1, s2;
void build(int l1, int r1, int l2, int r2){
    int m = s2.find(s1[l1]);
    if (m > l2)
        build(l1 + 1, l1 + m - l2, l2, m - 1);
    if (m < r2)
        build(l1 + m - l2 + 1, r1, m + 1, r2);
    cout << s1[l1];
}
int main(){
    cin >> s1 >> s2;
    build(0, s1.length() - 1, 0, s2.length() - 1);
    return 0;
}

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注