재귀 형식의 문자열을 stdin 또는 명령 줄을 통해 사용하는 프로그램을 작성하십시오.
PREFIX[SUFFIXES]
어디
PREFIX
빈 문자열을 포함하여 소문자 문자열 (az) 일 수 있습니다.SUFFIXES
PREFIX[SUFFIXES]
빈 시퀀스를 포함하여 재귀 형식이 함께 연결된 문자열 시퀀스 일 수 있습니다 .
각 접미사에서 문자열 목록을 재귀 적으로 평가하고 접두사에 추가하여 입력에서 소문자 문자열 목록을 생성하십시오. 이 목록의 문자열을 한 줄에 하나씩 순서대로 stdout하기위한 출력 (선택적 후행 줄 바꿈)
예
입력이
cat[s[up[][]][]ch[e[r[]s[]]]a[maran[]comb[]pult[[]ing[]]]]
다음 접두사는
cat
과와 접미사는s[up[][]]
,[]
,ch[e[r[]s[]]]
, 및a[maran[]comb[]pult[[]ing[]]]
. 각 접미사는 고유 한 접두사와 접미사를 차례로 갖습니다.어떤 순서로든 9 단어가 출력됩니다.
catsup cats cat catcher catches catamaran catacomb catapult catapulting
입력이이 트리를 인코딩하기 때문에
9 개의 출력 단어들 각각은 나무를 뿌리에서 잎으로 가로 질러 형성 될 수있다.
노트
접두사는 빈 문자열 일 수 있으므로
[donut[][]cruller[]]
출력이 어떤 순서로든 유효한 입력입니다.
donut cruller
여기서 빈 줄은 두 번째 접미사가 일치하는 빈 문자열입니다.
접미사 시퀀스도 비어있을 수 있으므로 간단한 입력 사례
[]
출력으로 하나의 빈 줄이 있습니다.
- 입력이 고유 한 출력 단어 만 생성한다고 가정 할 수 있습니다.
- 예를 들어 두 번 인코딩
hat[s[]ter[]s[]]
되므로 유효하지 않은 입력hats
입니다. - 마찬가지로
[[][]]
빈 문자열이 두 번 인코딩되므로 유효하지 않습니다.
- 예를 들어 두 번 인코딩
- 입력이 가능한 짧거나 압축되었다고 가정 할 수 없습니다 .
- 예를
'e'
들어 위의 기본 예제에서'ch'
노드를 노드 와 결합 할 수 있지만 입력이 유효하지 않다는 의미는 아닙니다. - 마찬가지로
[[[[[]]]]]
빈 문자열을 차선책으로 인코딩하더라도 유효합니다.
- 예를
- 프로그램 대신 입력 문자열을 인수로 사용하여 출력을 정상적으로 인쇄하거나 문자열 또는 목록으로 반환하는 함수를 작성할 수 있습니다.
바이트 단위의 가장 짧은 코드가 이깁니다.