문자열로 표시되는 문자 블록을 수신하고 알파벳에 인접한 문자가 연결된 유사한 문자열을 출력하거나 반환하는 프로그램 또는 함수를 작성해야합니다.
시각적 예 (형식 input => output
) :
b d b d
|\ /|
| \ / |
=> | X |
| / \ |
e |/ \e
c a c a
세부
- 입력은 공백, 개행 및 첫 번째
N
소문자 각각을 정확히 포함하는 문자열 입니다.1 <= N <= 26
- 입력 라인은 전체 사각형 블록을 생성하는 공백으로 채워집니다.
- 알파벳에 인접한 모든 문자 쌍은 동일한 행, 열 또는 대각선에 있으며을 사용하여 직선 아스키 줄에 연결해야합니다
\ / | or -
. (라인 길이는 0 일 수 있습니다.) 다음과 같은 두 줄의 겹침 유형을 처리해야합니다.
/ and \ become X | and - become + / and / become / \ and \ become \ | and | become | - and - become - [letter] and [anything] become [letter]
다른 종류의 2 줄 겹침은 발생하지 않습니다.
- 둘 이상의 라인이 겹치는 경우 이들 라인 중 하나가 유효한 겹치기 중 하나가 보장됩니다. (예 :
[letter] / |
삼중 항은 절대 발생하지 않습니다) - 공백을
\ / | - X and +
입력 및 출력 으로 변경하는 것 외에는 동일해야합니다. - 후행 줄 바꿈은 선택 사항이지만 입력 및 출력에서 동일해야합니다.
- 이것은 코드 골프이므로 가장 짧은 항목이 이깁니다.
예
입력:
b d
h gi
e f
c a
산출:
b d
|\ /|
| \ / |
| X h+--gi
| / \ | |
|/ \e--f
c a
입력:
dk j
b l
c fg
a m
i h
e
산출:
dk----j
/|| /
b / |l /
|X | \/
c \ fg/\
\|/\ \
a \ m
/| \
i-+----h
e
입력:
eti sqjh k p u cfm vb owgzyx rnd la
산출:
eti--sqjh-k--p--u--cfm-vb-owgzyx-rnd-la
입력:
a
산출:
a
정말 좋은 아스키 아트
—
Optimizer
X와 + 오버랩이 동일한 지점에 있어야한다면 어떻게해야합니까? 아니면 우리가 고려해야 할 경우가 아닙니까?
—
theonlygusti
예로서, "두 개 이상의 라인이 그 중 한 쌍은 상기 유효 중첩 중 하나가 될 겹치면"@theonlygusti
—
randomra
/
하고 -
있는 잘못된 중복을 X
하고 +
( / \ - and |
) 동일한 위치에서 발생할 수있다.
여전히 혼란스러워; 왜 우리에게 몇 가지 예를 들어주지 않겠습니까?
—
theonlygusti
@theonlygusti : 기본적으로, 당신이 고려해야 할 경우가 아닙니다
—
Claudiu