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 4se presiona la tecla, puede asumir que siempre será 4y 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
translatepara 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
1hasta/es el conjunto de caracteres original, mientras que la siguiente parte es el nuevo conjunto, que se utilizaopara indicar el otro conjunto.HyLson 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 (FGHyJKL), 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
hxVplugar de lo que tenía para el teclado multilíneaPruébalo en línea!
<esc>es0x1by<c-r>es0x12Nota: 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.
iingresa 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í,¬19inserta caracteres entre 1 y 9.El programa sale del modo de inserción en
<esc>. Y luego aquí/<c-r>abusca el argumento en el búfer. Esto coloca el cursor sobre el personaje que encontró.fuente
hylHVGpti puedes hacer lo que @DJMcMayhem hizo en la pregunta de la motocicletahxVp. No estoy seguro de por qué ponesGallí, ¿no es todo una línea? TambiéndhVpfuncionaría.Gdesde cuando el teclado solía ser multilínea. ¡Gracias!PowerShell, 82 bytes
La tecla Enter es compatible, pero no se puede probar
Read-Hostporque 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,indexOfdevuelve-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
\ncomo 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