Inspiriert von dieser Chat-Nachricht
Ihre Aufgabe wird es sein, ein Wort zu nehmen und die durchschnittliche Position seiner Buchstaben auf der Tastatur als Buchstaben zu finden.
Tastaturbelegung
Da die Layouts von Tastatur zu Tastatur unterschiedlich sind, verwenden wir in dieser Frage einen Standard, der auf meiner eigenen Tastatur basiert.
Die Tastatur hat 3 Zeilen, die obere Reihe von links nach rechts enthält die Tasten
QWERTYUIOP
Die zweite Zeile enthält die Buchstaben
ASDFGHJKL
Die letzte Zeile enthält
ZXCVBNM
Jeder Buchstabe ist 1 Einheit horizontal von seinem Nachbarn nach links. Dies bedeutet, dass W
1 von Q
und E
1 entfernt ist W
und so weiter.
Die Tasten am Anfang jeder Zeile haben folgende Positionen:
Q : 0,0
A : 1/3,1
Z : 2/3,2
Dies bedeutet, dass die Zeilen vertikal um eine Einheit voneinander getrennt sind und die beiden unteren Zeilen um ein Drittel von der darüber liegenden Zeile verschoben sind.
Sie sollten ein Wort als Eingabe nehmen und den Buchstaben ausgeben, der der durchschnittlichen Position der Buchstaben in seinem Wort am nächsten kommt. Der Durchschnitt eines Satzes von Vektoren ist
(average x value, average y value)
Wenn zwei Tasten gleich weit vom Durchschnitt entfernt sind, können Sie entweder als "nächstgelegene" Taste ausgeben.
Dies ist Code-Golf, daher werden die Antworten in Bytes bewertet, wobei weniger Bytes besser sind.
Beispiellösung
Berechnen wir den Durchschnitt von APL
.
Wir konvertieren jeden Buchstaben in einen Vektor
A -> (1/3,1)
P -> (9,0)
L -> (8 1/3,1)
Wir addieren diese drei Vektoren, um sie zu erhalten (17 2/3, 2)
. Wir teilen dann jede Koordinate durch 3 (die Anzahl der Buchstaben im Wort), um zu erhalten (5 8/9, 2/3)
.
Der nächste Brief (5 8/9, 2/3)
ist J
an (6 1/3,1)
so unser Ergebnis ist J
.
Testfälle
APL -> J
TEXT -> R
PPCG -> J
QQQQ -> Q
ZZZZ -> Z
PPPP -> P
MMMM -> M
QQSS -> A or W