Étant donné un mot (ou toute séquence de lettres) en entrée, vous devez interpoler entre chaque lettre de sorte que chaque paire de lettres adjacente dans le résultat soit également adjacente sur un clavier QWERTY, comme si vous tapiez l'entrée en marchant sur un clavier géant. Par exemple, « oui » pourrait devenir « y tr es », « chat » pourrait devenir « c xz a wer t ».
Règles:
Voici le format de clavier que vous devez utiliser:
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
Toute paire de touches qui touche dans cette disposition est considérée comme adjacente. Par exemple, «s» et «e» sont adjacents, mais «s» et «r» ne le sont pas.
- Le "mot" d'entrée sera composé de n'importe quelle séquence de lettres. Il n'aura que des lettres, vous n'aurez donc pas à vous occuper des caractères spéciaux.
- L'entrée peut être sous n'importe quelle forme pratique: stdin, une chaîne, une liste, etc. La casse des lettres n'a pas d'importance; vous pouvez prendre ce qui vous convient le mieux.
- La sortie peut être sous n'importe quelle forme pratique: stdout, une chaîne, une liste, etc. La casse des lettres n'a pas d'importance et n'a pas besoin d'être cohérente.
- Tout chemin sur le clavier est valide, sauf que vous ne pouvez pas croiser à nouveau la lettre précédente avant de passer à la lettre suivante. Par exemple, « hi » pourrait devenir « h j i » ou « h jnbgyu i », mais pas « h b h u i ».
- Une lettre n'est pas adjacente à elle-même, donc « sondage » ne peut pas devenir « sondage ». Au lieu de cela, il devrait devenir quelque chose comme « pol k l ».
- Aucune lettre de sortie n'est autorisée avant ou après le mot. Par exemple, « était » ne peut pas devenir «tre était » ou « était dfg».
C'est le golf de code, la réponse la plus courte en octets gagne.
dewqwerty
soit un chemin valide pourdy
. Pourriez-vous confirmer cela?Réponses:
Japt
-g
, 23 octetsEssayez-le en ligne!
Prend l'entrée comme un tableau de lettres majuscules. Très similaire aux autres réponses sinon.
Explication:
la source
Python 2 , 83 octets
Essayez-le en ligne!
Parcourt le clavier entier jusqu'à ce que le mot soit écrit.
la source
import re
vient le code, pas avant?re.findall
serait évalué lors de l'exécution du lambda, donc l'importation après la définition du lambda est correcte. Cela étant dit, il est plus clair d'importer avant, il n'y a tout simplement pas besoin de le fairePython 2 , 274 octets (solution optimale)
296300302308315319324327328430432octets-4 octets grâce à mypetlion
Essayez-le en ligne!
Cette solution donne la sortie la plus courte possible. Le clavier est transformé en un graphique utilisé pour trouver le chemin le plus court pour calculer la chaîne de sortie:
la source
JavaScript (ES6), 70 octets
Même stratégie que TFeld.
Essayez-le en ligne!
la source
05AB1E , 43 octets
Pas le bon langage pour ce défi, car il ne peut pas utiliser l'expression régulière comme les autres réponses.
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
la source
Fusain , 48 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Obtenez la chaîne
qwertyuioplkmjnhbgvfcdxsza
.Trouvez la position du premier caractère du mot. Cet index dépasse normalement le caractère qui vient d'être atteint, mais cette valeur simule la première itération de la boucle pour imprimer le premier caractère du mot.
Faites une boucle sur chaque personnage.
Calculez le nombre de caractères à imprimer pour inclure le caractère suivant du mot et bouclez autant de fois.
Imprimer le caractère suivant indexé cycliquement et incrémenter l'index.
la source