이 다섯 가지 ASCII 아트 바다 생물을 고려하십시오.
- 표준 물고기 :
><>
또는<><
- 빠른 물고기 :
>><>
또는<><<
- 건장한 물고기 :
><>>
또는<<><
- 신축성있는 물고기 :
><<<>
또는<>>><
- 게:
,<..>,
임의의 문자열을 허용하는 프로그램을 작성하십시오 <>,.
. 전체 스트링을 겹치지 않는 일련의 바다 생물 로 해석하는 방법이 있다면 , 생물 사이에 삽입 된 단일 공백으로 스트링을 다시 인쇄해야합니다. 이 해석이 불가능하면 아무것도 출력되지 않아야합니다 (프로그램은 자동으로 종료됩니다).
예를 들어, 문자열 <><><>
은 두 개의 표준 피쉬 백투백으로 해석 될 수 있습니다. 해당 출력은입니다 <>< ><>
.
또 다른 예로, 문자열 ><>><>>
에는 ...의 "인스턴스"가 포함
됩니다 (괄호는 지표로만 추가됨)
- 몇 가지 표준 물고기 :
[><>][><>]>
- 빠른 물고기 :
><[>><>]>
- 몇 가지 방법으로 건장한 물고기 :
[><>>]<>>
및><>[><>>]
그러나 표준 물고기와 건장한 물고기의 [><>][><>>]
쌍만 물고기를 공유하는 문자없이 겹침없이 문자열의 전체 길이에 걸쳐 있습니다. 따라서에 해당하는 출력 ><>><>>
은 ><> ><>>
입니다.
문자열을 해석 할 수있는 여러 방법이있는 경우 그 중 하나를 인쇄 할 수 있습니다. (만 인쇄 한 . 중)를 예를 들어, <><<<><
표준 물고기와 튼튼한 물고기로 해석 될 수있다 [<><][<<><]
, 또는 빠른 물고기와 표준 물고기 : [<><<][<><]
. 따라서 <>< <<><
또는 <><< <><
유효한 출력이됩니다.
게는 단지 재미입니다. 그들이 시작하거나 끝나지 않기 때문에 <
또는 >
, 그들은 (적어도 시각)를 식별하기가 훨씬 쉽다. 예를 들어, 문자열
,<..>,><<<>,<..>,><>,<..>,<>>><,<..>,><>>,<..>,<<><,<..>,<><,<..>,>><>
분명히 출력을 생성합니다
,<..>, ><<<> ,<..>, ><> ,<..>, <>>>< ,<..>, ><>> ,<..>, <<>< ,<..>, <>< ,<..>, >><>
다음은 출력을 생성하지 않는 문자열 (한 줄에 하나씩)의 예입니다.
<><>
,<..>,<..>,
>>><>
><<<<>
,
><><>
,<><>,
<<<><><<<>>><>><>><><><<>>><>><>>><>>><>><>><<><
선행을 제거하면 여기에서 마지막 문자열을 구문 분석 할 수 있습니다 <
.
<<>< ><<<> >><> ><> ><> <>< <>>>< >><> >><> >><> ><>> <<><
(가능한 다른 출력이있을 수 있습니다.)
세부
- 입력 문자열에는 문자 만 포함됩니다
<>,.
. - 입력 문자열은 하나 이상의 문자 길이입니다.
- 일반적인 방법 (명령 행, stdin)으로 입력을 받고 stdout으로 출력하십시오.
- 바이트 단위의 가장 짧은 코드가 이깁니다. ( 핸디 바이트 카운터. ) Tiebreaker는 이전 게시물입니다.