hihocoder(10주) 두 갈래 트리(전순 중 순서 추가) 점차적 실현

2443 단어 code

제목: 뒷차례 두루 훑어보다


시간 제한:
10000ms
단일 시한:
1000ms
메모리 제한:
256MB

묘사


미식축제에 참여한 후 샤오하이와 샤오호는 다른 곳에서 한동안 놀았다. 이 과정에서 샤오호는 아주 재미있는 장난감을 얻었다. 작은 공과 나무 막대기로 연결된 것두 갈래 나무!
작은 호는 이 두 갈래 나무에 대해 손을 떼지 않고 좋아해서 그것의 모든 노드에 표시를 했다. 하나는 A에 속한다.Z의 대문자이며 두 노드의 기호가 동일하지 않습니다.샤오하이도 이 기회를 노리고 샤오호에 대한 기초지식을 다시 한 번 다져보았습니다~ 이렇게 이틀을 편안하게 보냈습니다.
이날 샤오호는 바로 이 두 갈래 나무의 전차례, 중차례와 후차례 반복의 결과를 구하고 있었지만, 전차례 반복과 중차례 반복을 구하다가 실수로 두 갈래 나무를 땅에 떨어뜨렸고, 작은 공과 나무 막대기 등 부품이 바닥에 흩어졌다!
샤오호는 사랑하는 장난감을 잃어버려서 펑펑 울려고 했는데 다행히 샤오하이에게 들켰어요. "조급해하지 마세요. 부품이 다 있는 거 아니에요? 맞추면 되는 거 아니에요?"
"그런데 두 갈래 나무가 어떻게 생겼는지 잊어버렸어요!"샤오호는 낙담했다.
"이건 간단해. 네가 방금 이 두 갈래 나무의 전차와 중차가 두루 돌아다니는 결과를 구했잖아. 이 두 가지 정보를 이용하면 두 갈래 나무를 모두 복원할 수 있어!"
"이렇게?!"샤오호는 눈물을 멈추고 물었다. "그럼 어떻게 해야 하나요?"
맞아요!샤오호가 이번 주에 겪은 문제는 바로 두 갈래 나무의 전차와 중차적 역행 결과를 제시하고 이 두 갈래 나무를 복원하여 그 후차적 역행 결과를 출력하는 것이다.
두 갈래 나무가 두루 다니다

입력


각 테스트 지점 (입력 파일) 은 테스트 데이터 그룹만 있습니다.
각 그룹의 테스트 데이터의 첫 번째 행위는 대문자 알파벳으로 구성된 문자열로 이 두 갈래 나무의 앞 순서가 두루 훑어보는 결과를 나타낸다.
각 그룹의 테스트 데이터의 두 번째 행위는 대문자 알파벳으로 구성된 문자열로 이 두 갈래 트리의 중간 순서가 흐르는 결과를 나타낸다.
100%의 데이터에 대해 두 갈래 나무를 만족시키는 노드 수는 26보다 적다.

출력


각 그룹의 테스트 데이터에 대해 대문자 알파벳으로 구성된 문자열을 출력하여 복원된 두 갈래 트리의 뒷부분을 훑어보는 결과를 나타낸다.
샘플 입력
AB

BA

샘플 출력
BA


//    



#include <stdio.h>

#include <string.h>



void build(int len, char *s1, char *s2, char *s)

{

	int pos;

	int i;

	if(len<=0)

		return ;

	for(i=0; i<len; i++ )

	{

		if(s2[i] == s1[0] )

		{

			pos = i;

			//break;

		}

	}

	build(pos, s1+1, s2, s);

	build(len-pos-1, s1+pos+1, s2+pos+1, s+pos);

	s[len-1] = s1[0] ;

}





int main()

{

	char s1[100];

	char s2[100];

	char s[100];

    int len;



	while(scanf("%s", s1)!=EOF)

	{

		memset(s, '\0', sizeof(s)) ;

		scanf("%*c");

		scanf("%s", s2 );

        len = strlen(s1);

        

        build(len, s1, s2, s);

		puts(s);

	}

	return 0;

}


좋은 웹페이지 즐겨찾기