Code Golf Challenge
Tengo un problema, mis dedos están gordos y con frecuencia tengo un problema al escribir una tecla a la derecha en mi kryboard.
Me temo que el tiempo se está poniendo peor y peor con el paso del tiempo.
Sopn cada pulsación de tecla que hago wil; ¡muévase hacia la derecha!
Antes de eso, me gustaría un programa (o función) para cambiar automáticamente cada pulsación de tecla a la izquierda.
Me aseguraré de llevar mi tomo typong al resto de tjis chal; enge para no causar ninguna confusión.
Objetivo:
Escriba un programa o función que tome una entrada de una de las siguientes teclas verdes en un teclado QWERTY estándar y devuelva el carácter de la tecla a la izquierda del mismo.
Condiciones:
• Puede suponer que la persona que ejecuta este programa está usando un teclado QWERTY como el que se muestra arriba.
• La entrada y la salida no distinguen entre mayúsculas y minúsculas, puede usar cualquier caso (o una combinación de combinaciones de mayúsculas y minúsculas) para este desafío y también puede suponer que todas las entradas serán en un solo caso si lo desea.
• Si su idioma no tiene forma de permitir que un usuario ingrese la tecla de retorno por alguna razón, puede ignorar esa tecla para esto.
• Este desafío es solo para los valores predeterminados de las teclas, por ejemplo, si 4
se presiona la tecla, puede asumir que siempre será 4
y nunca$
• Puede suponer que solo se presionarán las teclas verdes.
Ejemplo Input
-> Output
:
S
-> a
4
-> 3
=
-> -
[
->p
Este es el código de golf , por lo que gana el programa con el bytecount más corto.
]
->[
?Respuestas:
Ruby,
76 7169 bytesfuente
Perl 6 ,
878369 bytesPruébalo en línea!
Me pregunto si hay una manera de codificar esa cadena codificada en algo más corto ...
(Robó la idea de expresiones regulares de GB para -14 bytes).
fuente
$"
los rangos podríamos ahorrar algunos caracteresJalea ,
3433 bytesPruébalo en línea!
Cómo funciona
fuente
Øq
¡hábil! Me gusta esto, gracias!Python 3,
8578 bytes:fuente
lambda x,k="1234567890-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm<>?":k[k.find(x)-1]
para reducir algunos bytesPython , 76 bytes
Pruébalo en línea!
Crea un diccionario que lleva cada tecla a la izquierda al comprimir la cadena de caracteres con su versión desplazada. La conclusión es la función, la superior es una definición.
El uso
translate
para crear un mapeo dio una solución más larga. Pruébalo en línea!fuente
Retina ,
5351 bytesPruébalo en línea!
Una transliteración simple que desplaza cada personaje 1 posición hacia atrás. Todo desde
1
hasta/
es el conjunto de caracteres original, mientras que la siguiente parte es el nuevo conjunto, que se utilizao
para indicar el otro conjunto.H
yL
son clases de caracteres especiales para la transliteración en la retina (mapeo respectivamente a dígitos hexadecimales y letras mayúsculas), pero afortunadamente ocurren en el teclado dentro de secuencias ordenadas alfabéticamente (FGH
yJKL
), por lo que podemos evitar escapar colocándolos en rangos y ganar así 2 bytesfuente
C ++, 109 bytes
Pruébalo en línea!
fuente
TI-Basic, 70 bytes
Dudo que pueda ser más corto que esto ...
PS Las fichas son de dos bytes
Str1
,`
,\
,sub(
, yinString(
.fuente
V ,
575451 bytes3 bytes guardados gracias a @ nmjcman101 por usar
hxVp
lugar de lo que tenía para el teclado multilíneaPruébalo en línea!
<esc>
es0x1b
y<c-r>
es0x12
Nota: esto no es compatible con la tecla Intro
Contiene no imprimibles, así que aquí está el hexdump
Explicación
La mayor parte del programa genera el teclado.
i
ingresa al modo de inserción y cada carácter que lo sigue se imprime en el búfer. Pero hay una pequeña peculiaridad aquí,¬19
inserta caracteres entre 1 y 9.El programa sale del modo de inserción en
<esc>
. Y luego aquí/<c-r>a
busca el argumento en el búfer. Esto coloca el cursor sobre el personaje que encontró.fuente
hylHVGp
ti puedes hacer lo que @DJMcMayhem hizo en la pregunta de la motocicletahxVp
. No estoy seguro de por qué ponesG
allí, ¿no es todo una línea? TambiéndhVp
funcionaría.G
desde cuando el teclado solía ser multilínea. ¡Gracias!PowerShell, 82 bytes
La tecla Enter es compatible, pero no se puede probar
Read-Host
porque el acto de presionar enter sin valor no devuelve nada en PowerShell.fuente
Japt ,
5642 bytesExplicación
Pruébalo en línea!
fuente
Java 8, 99 bytes
Explicación:
Pruébalo aquí
fuente
c->"`1234567890-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm,./".replaceAll("(?s).*(.)"+c+".*","$1")
.JavaScript (ES6), 74 bytes
Como
/
no está en mi cadena,indexOf
devuelve-1
, que cuando se incrementa hace.
que se genere la salida. 93 bytes para procesar una cadena:fuente
GNU sed , 72 + 1 (r flag) = 73 bytes
La clave de retorno no se puede probar, porque sed por diseño divide la entrada usando
\n
como delimitador y luego ejecuta el script tantas veces como haya líneas.Prueba de funcionamiento: par continuo de entrada-salida (cuando haya terminado, presione Ctrl + D o Ctrl + C)
fuente
05AB1E , 50 bytes
Pruébalo en línea!
Explicación:
fuente
Pyth - 56 bytes
Test Suite .
fuente