신축성이 뱀 같은 :
<||=|||:)~
수직 막대 (각 개별 시퀀스 |
A와 공지 신축성 뱀)에 신축성 부분은 회 폭을 각각 확장하고, 교류 슬래시 (그린되고 /
, \
한번 확장).
위의 특정 뱀에는 두 개의 신축성이있는 부분이있어서 네 가지 포즈가 가능합니다.
<||=|||:)~
</\/\=|||:)~
<||=/\/\/\:)~
</\/\=/\/\/\:)~
가장 스트레칭이 적은 포즈의 신축성 뱀의 일반적인 형태는 이 정규식에 의해 정의됩니다 .
<(\|+=)*\|+:\)~
다음과 같이 말로 표현할 수 있습니다.
<
의 서열의 숫자 다음|
의 결합 에=
이어, 표지판:)~
.
그리고 <|:)~
and <||:)~
and <|=|:)~
and <|=|=||=|||||=||:)~
는 신축성이있는 뱀이지만 <=:)~
and <=|:)~
and <||=:)~
and <|==||:)~
not.
신축성있는 뱀도 오른쪽 대신 왼쪽을 향할 수 있습니다 (예 :) ~(:|||=||>
. 양식은 동일합니다.
도전
서로 마주 보는 두 개의 신축성있는 뱀으로 구성된 한 줄짜리 문자열을 사용하는 프로그램을 작성하십시오. 두 뱀은 가장 짧게 포즈를 취합니다 (모든 수직 막대, 슬래시 없음). 줄은 오른쪽을 향한 뱀의 꼬리로 시작하고 왼쪽을 향한 뱀의 꼬리로 끝납니다 (선택적으로 후행 줄 바꿈이 있다고 가정 할 수 있습니다).
예를 들어, 뱀 사이에 5 개의 공백이있는 입력이 있습니다.
<|=||:)~.....~(:||||>
.
명확성을 위해 실제 공백 문자 대신 마침표 ( )를 사용하고 있습니다 .
뱀 사이에 공백이없는 것도 유효한 입력입니다.
<|=||:)~~(:||||>
우리는 뱀이 혀가 이렇게 닿을 때 키스 하고 있다고 말합니다 .
당신의 프로그램은 뱀이 그들 사이에 가능한 한 적은 수의 공간을 갖도록 ( 즉 , 겹치지 않는), 즉 뱀이 가능한 한 키스에 가까워 지도록 두 뱀의 신축 부분의 조합을 확장해야 합니다 .
뱀의 꼬리는 모두 고정되어 있지만 머리와 몸은 오른쪽으로 향한 뱀의 경우 오른쪽으로, 왼쪽으로 향한 뱀의 경우 왼쪽으로 움직입니다.
프로그램의 출력은 확장 된 신축성 부분을 위해 세로 막대 대신 교대로 슬래시를 사용하여 뱀을 가능한 한 키스에 가깝게 표시하는 단일 행 문자열 (옵션 후행 줄 바꿈)입니다.
예를 들어, 위의 출력 <|=||:)~.....~(:||||>
은 다음과 같습니다.
</\=||:)~~(:/\/\/\/\>
신축성있는 부분의 다른 조합이 확장되면 뱀이 겹치거나 키스에서 멀리 떨어져 있기 때문에 이것은 유일한 해결책입니다.
여러 솔루션이 가능한 경우 출력은 그 중 하나 일 수 있습니다.
예를 들어 입력이
<|=||:)~.....~(:|||=|>
출력은
<|=/\/\:)~~(:/\/\/\=|>
또는
</\=||:)~~(:/\/\/\=/\>
뱀에게 키스하는 것이 항상 가능하지는 않지만, 가능한 한 가깝게 접근해야합니다.
예를 들어 입력이
<||=||||:)~...~(:||>
출력은
</\/\=||||:)~.~(:||>
또는
<||=||||:)~.~(:/\/\>
뱀이 이미 키스하는 경우 출력은 입력과 동일합니다. 예 :
<|=||:)~~(:||||>
일반적으로 신축 부분의 연장으로 뱀이 겹치게되면 출력은 입력과 동일합니다. 예 :
<|||=|||:)~..~(:||||=|||||=||||||>
노트
- 평소와 같이 stdin 또는 명령 행에서 입력을 받거나 문자열을 취하는 함수를 작성합니다. 출력을 인쇄하거나 반환하십시오.
- 원하는 경우
.
공백 () 대신 입력 및 출력에 마침표 ( )를 사용할 수 있습니다 .
- 슬래시가 교체 한 일련의 수직 막대 내에서 번갈아가는 것이 중요합니다. 뱀의 순서가 크거나 슬래시가 먼저 오는지 여부는 중요하지 않습니다.
- 신축성있는 부분은 부분적으로 확장 할 수 없습니다. 정확히 두 배이거나 전혀 확장되지 않습니다.
채점
이것은 code-golf 입니다. 바이트 단위의 최단 제출이 이깁니다. Tiebreaker가 이전 답변입니다.
>
가되지 않을 것입니다 ), 그러나 그는 "대치 된 수직 막대 순서 내에서 슬래시가 번갈아 나타나는 것이 중요합니다. 뱀이 크거나 앞뒤 슬래시가 먼저 오는 것은 중요하지 않습니다. " <
(
)