2015年7月11日 星期六

TIOJ 1108 . 樹的三兄弟



#include <cstdio>
#include <cstdlib>
#include <cstring>

using namespace std;

char pre[100], in[100];

void print_tree(int pre1, int pre2, int in1, int in2){
    if(pre1 == pre2) return;
    
    int ptr = in1;
    for(;ptr < in2;ptr++)
        if(in[ptr] == pre[pre1])
            break;

    print_tree(pre1+1, pre1+(ptr-in1)+1, in1, ptr);
    print_tree(pre1+(ptr-in1)+1, pre2, ptr+1, in2);
    printf("%c", pre[pre1]);
    return;
}

int main(){
    while(scanf("%s %s", pre, in) != EOF){
        print_tree(0, strlen(pre), 0, strlen(in)) ;
        puts("");
    }
    return 0;
}   

沒有留言:

張貼留言