Vous devez écrire un programme ou une fonction qui reçoit un bloc de caractères représenté sous la forme d'une chaîne et génère ou renvoie une chaîne similaire dans laquelle les lettres adjacentes de l'alphabet sont connectées.
Un exemple visuel (sous forme de input => output
):
b d b d
|\ /|
| \ / |
=> | X |
| / \ |
e |/ \e
c a c a
Détails
- L'entrée sera une chaîne contenant des espaces, des retours à la ligne et exactement l'une de chacune des premières
N
lettres minuscules.1 <= N <= 26
- Les lignes de l'entrée seront remplies d'espaces créant un bloc rectangulaire complet.
- Chaque paire de lettres adjacente à l'alphabet sera sur la même ligne, colonne ou ligne diagonale et devrait être connectée avec une ligne ascii droite en utilisant
\ / | or -
. (La ligne peut avoir une longueur de 0.) Les types de chevauchements sur deux lignes suivants doivent être traités:
/ and \ become X | and - become + / and / become / \ and \ become \ | and | become | - and - become - [letter] and [anything] become [letter]
Aucun autre type de chevauchement sur deux lignes ne se produira.
- Si plus de deux lignes se chevauchent, une paire d'entre elles sera garantie comme étant l'un des chevauchements valides. (par exemple, un
[letter] / |
triplet ne se produira jamais) - En plus de changer les espaces en
\ / | - X and +
entrée et en sortie, ils doivent être identiques. - Le retour à la ligne est facultatif mais doit être le même pour l'entrée et la sortie.
- Il s'agit de code-golf, donc l'entrée la plus courte l'emporte.
Exemples
Contribution:
b d
h gi
e f
c a
Sortie:
b d
|\ /|
| \ / |
| X h+--gi
| / \ | |
|/ \e--f
c a
Contribution:
dk j
b l
c fg
a m
i h
e
Sortie:
dk----j
/|| /
b / |l /
|X | \/
c \ fg/\
\|/\ \
a \ m
/| \
i-+----h
e
Contribution:
eti sqjh k p u cfm vb owgzyx rnd la
Sortie:
eti--sqjh-k--p--u--cfm-vb-owgzyx-rnd-la
Contribution:
a
Sortie:
a
/
et -
sont des chevauchements invalides X
et +
( / \ - and |
) ne peut pas se produire à la même position.