Wenn Sie ein Wort (oder eine beliebige Folge von Buchstaben) als Eingabe eingeben, müssen Sie zwischen den einzelnen Buchstaben interpolieren, sodass jedes benachbarte Buchstabenpaar im Ergebnis auch auf einer QWERTZ-Tastatur benachbart ist, als ob Sie die Eingabe über eine riesige Tastatur getippt hätten. Zum Beispiel : ' ja ' werden könnten ' y tr es ', ' Katze ' könnte 'geworden c xz a wer t '.
Regeln:
Dies ist das Tastaturformat, das Sie verwenden sollten:
q
w
e
r
t
y
u
i
o
p
a
s
d
f
g
h
j
k
l
z
x
c
v
b
n
m
Jedes Tastenpaar, das sich in diesem Layout berührt, wird als benachbart betrachtet. Zum Beispiel stehen 's' und 'e' nebeneinander, 's' und 'r' dagegen nicht.
- Das eingegebene "Wort" besteht aus einer beliebigen Folge von Buchstaben. Es enthält nur Buchstaben, so dass Sie sich nicht mit Sonderzeichen befassen müssen.
- Die Eingabe kann in beliebiger Form erfolgen: stdin, eine Zeichenfolge, eine Liste usw. Die Groß- und Kleinschreibung spielt keine Rolle. Sie können nehmen, was bequemer ist.
- Die Ausgabe kann in jeder beliebigen Form erfolgen: stdout, eine Zeichenfolge, eine Liste usw. Die Groß- und Kleinschreibung spielt keine Rolle und muss nicht konsistent sein.
- Alle Pfade über die Tastatur sind gültig, mit der Ausnahme, dass Sie den vorherigen Buchstaben nicht erneut überqueren können, bevor Sie zum nächsten Buchstaben gelangen. Zum Beispiel könnte ' hi ' zu ' h j i ' oder ' h jnbgyu i ' werden, aber nicht zu ' h b h u i '.
- Ein Buchstabe grenzt nicht an sich selbst an, daher kann " Umfrage " nicht zu " Umfrage " werden. Stattdessen müsste es so etwas wie " pol k l " werden.
- Vor oder nach dem Wort sind keine Ausgabebuchstaben zulässig. Zum Beispiel kann ' was ' nicht 'tre was ' oder ' was dfg' werden.
Dies ist Codegolf, die kürzeste Antwort in Bytes gewinnt.
dewqwerty
sei dies ein gültiger Pfad fürdy
. Könnten Sie das bestätigen?Antworten:
Japt
-g
, 23 BytesProbieren Sie es online!
Nimmt die Eingabe als Array von Großbuchstaben. Ansonsten sehr ähnlich zu den anderen Antworten.
Erläuterung:
quelle
Python 2 , 83 Bytes
Probieren Sie es online!
Geht die gesamte Tastatur durch, bis das Wort geschrieben ist.
quelle
import re
nach dem Code, nicht vorher?re.findall
ausgewertet, wenn das Lambda ausgeführt wird. Daher ist das Importieren nach der Lambda-Definition in Ordnung. Abgesehen davon ist es klarer, vorher zu importieren, es gibt einfach keine NotwendigkeitPython 2 , 274 Bytes (optimale Lösung)
296300302308315319324327328430432Bytes-4 Bytes dank mypetlion
Probieren Sie es online!
Diese Lösung bietet die kürzestmögliche Ausgabe. Die Tastatur wird in ein Diagramm umgewandelt, mit dem der kürzeste Pfad zur Berechnung der Ausgabezeichenfolge ermittelt wird:
quelle
JavaScript (ES6), 70 Byte
Gleiche Strategie wie TFeld.
Probieren Sie es online!
quelle
05AB1E , 43 Bytes
Nicht die richtige Sprache für diese Herausforderung, da Regex nicht wie die anderen Antworten verwendet werden kann.
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle
Kohle , 48 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Hol den String
qwertyuioplkmjnhbgvfcdxsza
.Suchen Sie die Position des ersten Zeichens des Wortes. Dieser Index ist normalerweise eins nach dem gerade erreichten Zeichen, aber dieser Wert fälscht die erste Iteration der Schleife aus, um das erste Zeichen des Wortes zu drucken.
Schleife über jedes Zeichen.
Berechnen Sie, wie viele Zeichen gedruckt werden sollen, um das nächste Zeichen des Wortes und die Schleife so oft einzuschließen.
Drucken Sie das nächste Zeichen zyklisch und erhöhen Sie den Index.
quelle