El reto:
Dada cualquier entrada que pueda escribirse en un teclado, mueva el texto con N caracteres.
Aquí está el teclado QWERTY para ser utilizado. Puede ignorar las teclas modificadoras (Shift, Caps, Enter, Delete y Tab). Una vez que llegas a un lado (por ejemplo |
) gira de nuevo, |
pasa a Q
if N = 1
.
No es necesario mover los espacios (vuelven al espacio al omitir los modificadores). Si se utilizó turno para escribir el carácter (por ejemplo, !
e @
) el carácter cambiado también debe ser escrito utilizando turno (es decir, !
va a @
no 2
si N = 1
).
Los teclados del Reino Unido son diferentes a esto, pero utilízalo para poder comparar.
Entrada:
Cualquier oración que se pueda escribir en el teclado anterior seguido de un entero positivo. No hay un máximo para el tamaño de este número entero.
Salida:
La misma oración, desplazada por N.
Ejemplos:
My name is Tim 3
?o .f/y [g I[/
Hello World 7
Spgge Oe[g;
I Wi5h I h4d b3773r C@d3ing ski{{s 3
{ T[8l { l7h ,6006u N%h6[.k g'[QQg
Este es el código de golf, por lo que gana el código más corto.
N<= 13
ya que tendrá que cambiar a lo sumo 13 para volver al personaje original?Hello World 7
ejemploSpgge Oe[g;
? Los doso
deberíanRespuestas:
C, 217 bytes
Versión legible con espacios en blanco, incluye, etc.
El código habla más o menos por sí mismo. Solo una tabla de búsqueda que asigna de cada carácter al siguiente carácter, que se aplica el número dado de veces. Gran parte del código es en realidad para analizar el número de la entrada.
fuente
05AB1E , 61 bytes
-1 byte gracias a Kevin Cruijssen
Pruébalo en línea!
fuente
Pyth, 126 bytes
Pruébelo en línea: Demostración o conjunto de pruebas
Explicación:
fuente
Python 3, 311 bytes
fuente
" " for c in " "
Python 3,
271255 bytesLa línea de base, casi sin golf, solía crear las palabras desplazadas en la pregunta.
Explicación:
fuente
JavaScript (ES6), 200
216Usando cadenas de plantilla, las nuevas líneas son significativas y contadas.
Nota sobre
replace
: los dos fragmentosstring.split('x').map(w=>...)
ystring.replace(/[^x]+/g,w=>...)
son formas igualmente válidas para ejecutar una función para cada parte de una cadena, utilizando un separador. Usar una nueva línea como separador es útil cuando la regexp de reemplazo se vuelve/.+/g
, porque el punto coincide con cualquier línea que no sea nueva. Y al usar cadenas con plantillas, las nuevas líneas no tienen costo adicional.fuente
CJam, 107 bytes
Pruébelo en línea en el intérprete de CJam .
Cómo funciona
fuente
Jalea , 67 bytes
Pruébalo en línea!
Un enlace diádico que toma la cadena como argumento izquierdo y el número de lugares para cambiar como argumento derecho.
fuente
Python 2 , 194 bytes
Pruébalo en línea!
fuente