Intro
In den meisten Schriftarten alle die Großbuchstaben des Alphabets neben BDOhaben einzelne Linien etwa einige der vier Ecken des Charakters des Begrenzungsrechteck zu berühren: ACEFGHIJKLMNPQRSTUVWXYZ.
Zum Beispiel Aberühren die beiden Beine die untere linke und die untere rechte Ecke des Charakters. Ebenso Cberührt es seine oberen und unteren rechten Ecken (es ist ein bisschen gebogen, aber es ist nah genug). LBerührt nur die linke obere und rechte untere Ecke mit einzelnen Linien. Die untere linke Ecke von List ein Eckpunkt, nicht das Ende einer einzelnen Linie.
Hier ist eine Tabelle, welche Zeichen welche Ecken berühren, entsprechend der Stack Exchange-Schriftart, die ich (und hoffentlich Sie) sehe. 1ist für oben links, 2ist für oben rechts, 3unten links, 4unten rechts.
A: 3 4
C: 2 4
E: 2 4
F: 2 3
G: 2
H: 1 2 3 4
I: 1 2 3 4
J: 1 3
K: 1 2 3 4
L: 1 4
M: 3 4
N: 2 3
P: 3
Q: 4
R: 3 4
S: 2 3
T: 1 2
U: 1 2
V: 1 2
W: 1 2
X: 1 2 3 4
Y: 1 2
Z: 1 4
Installieren
Stellen Sie sich vor, diese Eckberührungslinien verlaufen in Richtung der Ecke, die sie berühren, damit die Anordnungen dieser Zeichen in einem Raster "verbunden" werden können.
Zum Beispiel alle Zeichen in
A
C X
sind verbunden, weil die Verbindung links unten Aund rechts oben Cund die Verbindung rechts unten Aund links oben erfolgt X.
Jedoch,
CAX
hat keine Verbindungen, da Verbindungen nur diagonal von einem Zeichen zum nächsten auftreten .
Herausforderung
Schreiben Sie das kürzestmögliche Programm (in Byte), das alle Zeichen ACEFGHIJKLMNPQRSTUVWXYZin einem großen, vollständig verbundenen Baum ausgibt , gemäß den obigen Regeln. Jedes Zeichen muss genau einmal vorkommen. Verwenden Sie Leerzeichen als Leerzeichen.
Beispiel
Alles in diesem 23-Buchstaben-Baum kann von irgendetwas anderem über die oben definierten diagonalen Verbindungen erreicht werden:
Q
A J R
C U S Y
I M N
E H X
F L T
G Z K P
V W
Anmerkungen
- Sie können Ihre Lösung fest codieren.
- Ihre Ausgabe sollte nur
ACEFGHIJKLMNPQRSTUVWXYZLeerzeichen und Zeilenumbrüche enthalten.BDOwird nicht verwendet. - Führende / nachfolgende Leerzeichen sind in Ordnung, solange alle Verbindungen richtig positioniert sind.
- Das Ausgaberaster sollte nicht größer als 30 x 30 Zeichen sein (einschließlich Zeilenumbrüchen und Leerzeichen).
- Es werden nur Eckverbindungen berücksichtigt. Der Boden von
Yverbindet sich mit nichts. Sie müssen die Eckverbindungen aus der obigen Tabelle verwenden. - Nicht alle verbindbaren Ecken müssen mit etwas verbunden werden. Verbindbare und nicht verbindbare Ecken können aneinander grenzen.
- Ausgabe auf Standardausgabe. Es erfolgt keine Eingabe.
- Das Einfügen eines Konnektivitätsdiagramms mit Schrägstrichen, wie es Peter Taylor getan hat, ist hilfreich, aber nicht erforderlich.
Update:
githubhagocyte hat auf Github eine Überprüfung der Gültigkeit des Alphabetbaums durchgeführt .