ASCII 예술은 재미있다. 최신 텍스트 편집기는 텍스트 조작에 매우 능숙합니다. 현대 프로그래밍 언어가 과제에 달려 있습니까?
ASCII 아트 조작의 일반적인 작업 중 하나는 텍스트를 두 문자 사이의 사각형으로 자르는 것입니다. 이 과제에서 구현해야하는 작업입니다.
세부
프로그램은 3 개의 입력을받습니다 :
- 첫 번째는 블록의 '시작'문자입니다-왼쪽 상단 모서리 표시
- 두 번째는 블록의 '끝'문자입니다-오른쪽 하단 모서리를 표시합니다
- 세 번째는 어떤 형식의 여러 줄 텍스트, 문자열 또는 문자열 목록 또는 파일 이름 또는 기타
결과는 여러 줄의 텍스트 (위의 형식 중 하나)가 주어진 입력 사이의 사각형으로 잘립니다. 처음 두 입력은 고유하지 않을 수 있습니다.
가장자리 케이스
상자의 용량은 항상 2 이상이어야합니다.
() (
)
있는 상자 그러나 이들은 :
)( ) (
( )
아닙니다 (start = (
및 end = 사용 )
).
입력은 하나의 상자 만 포함합니다. 따라서 시작 및 끝 문자는 동일한 문자가 아닌 한 두 번만 발생해야하는 경우가 아니면 한 번만 발생해야합니다.
또한 입력의 각 라인은 적어도 라인의 시작에서 입력의 상자 오른쪽 가장자리까지의 거리만큼 길어야합니다.
프로그램은 유효하지 않은 입력을 처리 할 필요가 없습니다. 정의되지 않은 동작이 발생할 수 있습니다.
규칙
일반적인 코드 골프 규칙이 적용됩니다. 가장 짧은 코드가 승리합니다.
예
맑은 날: start: ( end: ) input:
This is some text
. (but this text
is in a box ).
So only it is important.
산출:
(but this text
is in a box )
수평 공간 제거도주의하십시오. ASCII 아트 작물은 2d입니다.
비오는 날: start: ( end: ) input:
This is some text (
But is that even )
really a box?
산출:
(
)
동일한 시작 / 종료 : start: / end: / input:
Oh, I get how this could be useful
/----------------------------\
| All this text is in a box! |
\----------------------------/
산출:
/----------------------------\
| All this text is in a box! |
\----------------------------/
잘못된 입력: start: ( end: ) input:
Boxes are rectangular ( so this has
0 volume ) which is illegal.
유효하지 않은 입력 2 : start: ( end: ) input:
(The lines must already be square
so this line that is too short
relative to this end, is illegal)