En realidad, no está inspirado ni por Atbash Self Palindromes ni por la Calculadora de Gematria generalizada .
Dada una cadena s de longitud n , genera la secuencia Revu'a , que es el primer carácter de s , los dos primeros caracteres de s , ... los primeros n –2 caracteres de s , los primeros n –1 caracteres de s , todo el s .
La cadena solo constará de caracteres Unicode (cualquier codificación que desee) que tengan una fuerte direccionalidad y se encuentren en el rango de 0x0000 a 0xFFFF. Sin embargo, no se producirán caracteres de control de direccionalidad. Todos los caracteres en cualquier cadena dada tendrán la misma direccionalidad.
Puede regresar en notación de matriz ["t","te","tes","test"]
, como una cadena separada por espacios "t te tes test"
, como texto de varias líneast
te
tes
test
, una matriz preformateada
t te tes pruebao algo similar. Las cantidades de espacios iniciales, de separación y finales no son importantes, y tampoco lo son la nueva línea final. Pregunte si tiene dudas.
La entrada de derecha a izquierda debe dar como resultado una salida de derecha a izquierda en el orden correcto:
Entrada: "נחמן"
Salida: "נ נח נחמ נחמן"
o
נ נח נחמ נחמןO
["נ","נח","נחמ","נחמן"]
. Entre los resultados no válidos son "נחמן נחמ נח נ"
, "ן מן חמן נחמן"
y "נחמן חמן מן ן"
.
JavaScript (ES6),
272625 bytesGuardado un byte gracias a @nicael y @ MartinBüttner, uno gracias a @Neil
Aprovecha algunas características integradas de la
.replace
función de JS . Específicamente, en el reemplazo, se$`
convierte en todo lo que precede al carácter coincidente. Usar la expresión regular en/.?/g
lugar de/./g
significa que también coincide con la cadena vacía al final.fuente
f=x=>x.replace(/.?/g,"$
")`. Obtienes un espacio inicial adicional pero eso está permitido.Japt,
104 bytesNo me di cuenta de que una reducción acumulativa sería tan útil en este caso. :-)
Salidas como una matriz, separadas por comas por defecto. Si esto no está permitido, use este código de 6 bytes en su lugar:
Pruébalo en línea!
Cómo funciona
fuente
Brainfuck, 40 bytes
Mi consola no admite caracteres de derecha a izquierda, pero no creo que funcione: c
Sin golf:
fuente
Retina,
117 bytesLa salida está separada por espacios, con un espacio inicial y un avance de línea final.
Pruébalo en línea!
fuente
perl -pE 's/./$
$ & \ n / g ''. (Llego 11 meses tarde, lo sé)Python, 35
No se pudo encontrar una manera
and/or
de simplificar la recursión porque[]
es falsa.Solución recursiva, devuelve una lista de cadenas.
Pruébalo en línea
fuente
Prólogo (SWI),
6049 bytesCódigo:
Explicado:
atom_prefix con X configurado como input y S como variable da 1 prefijo del átomo X que comienza con el átomo vacío.
Findall obtiene todas las soluciones y las coloca en una lista.
[_ | R] tira la cabeza (el átomo vacío) y almacena la cola en R
Ejemplos:
Pruébalo en línea aquí
Editar: salvó 11 bytes sólo almacenar la cola en R .
fuente
Pyth, 3
El prefijo incorporado hace el truco.
Banco de pruebas
fuente
GNU Sed, 21
La puntuación incluye +1 para la
-E
opción de sed:Funciona para LTR, pero no para RTL: me perdí ese bit.. En realidad se hace el trabajo, la RTL fue simplemente no prestando correctamente en mi terminal. Funciona bien con IO visto en un editor de texto sensible (por ejemplo, emacs). También funciona en Ideone:Pruébalo en línea.
fuente
Brachylog , 5 bytes (no competidor)
Pruébalo en línea!
Explicación
Las cadenas de derecha a izquierda parecen funcionar correctamente, aunque nunca las consideré.
fuente
@[
y@w
se implementaron necesariamente después de abril / mayo de 2016. Se podría encontrar la fecha exacta en las confirmaciones de Github, pero seguramente no antes de que se presente este desafío.CJam, 9 bytes
La salida está separada por salto de línea.
Pruébalo aquí.
Explicación
fuente
Ll{+_p}/;
tiene la misma duración, publicando porque no estoy seguro de si alguien con más experiencia podría jugar más al golf, y también tal vez arreglar las citas: PJavaScript, 36 bytes
Manifestación:
El principio es asignar y generar la porción de cadena desde el primer carácter a cada carácter de la palabra. Sorprendentemente, esto también funciona perfectamente para las cadenas RTL, no se necesita optimización.
fuente
Mi consola no admite caracteres de derecha a izquierda, pero no creo que funcione: c
C, 74 bytes (2da entrada)
Sin golf:
fuente
Mi consola no admite caracteres de derecha a izquierda, pero no creo que funcione: c
C, 105 bytes (3ª entrada)
Sin golf:
fuente
TI-BASIC, 18 bytes
No es técnicamente válido: TI-BASIC no es compatible con Unicode.
Nombra esto
prgmA
y escribe usandoAns
.La recursividad del programa sería más corta, pero no habría forma de inicializar las variables. Por lo tanto, mostramos una subcadena de la entrada en cada iteración. La entrada nunca se sobrescribe, ya que Disp no devuelve un valor.
Finalmente, el programa termina con un error después de imprimir la cadena completa.
fuente
Python, 54 bytes
fuente
Java 7,
9592 bytesRespuesta anterior ( 95 bytes ):
Intenté un enfoque recursivo, pero realmente no pude hacerlo funcionar. Quizás alguien más lo hará (más corto que este for-loop).
Sin golf y casos de prueba:
Pruébalo aquí
Salida:
fuente
Dip , 1 byte (no competidor)
Explicación:
fuente
MATL , 8 bytes
Utiliza la versión actual (8.0.0) del lenguaje / compilador
Ejemplo
Explicación
fuente
Mathematica, 29 bytes
TODO: explicación
fuente
𝔼𝕊𝕄𝕚𝕟, 7 caracteres / 16 bytes
Try it here (Firefox only).
Probablemente hay un lugar para esto en alguna parte, simplemente no lo he encontrado.
Explicación
fuente
Javascript ES6, 29 bytes
Esto no gana nada, pero es una solución simple.
fuente
Pyth, 11 bytes
Pruébalo
Explicación
fuente
Python, 32 bytes
Función recursiva que genera una cadena separada por espacios con un espacio inicial.
Un programa de 34 bytes (Python 2):
fuente
V , 5 bytes (no competitivos)
Pruébalo en línea!
Este lenguaje es más nuevo que el desafío, lo que hace que esta respuesta no sea competitiva. Explicación:
fuente
PowerShell v2 +, 28 bytes
Toma datos
$args[0]
, loschar
convierte como una matriz, canaliza los caracteres en un bucle|%{...}
. Cada iteración, acumulamos a$o
través+=
del personaje actual$_
. Esa expresión se encapsula en parens para que se coloque una copia en la tubería. Al final de la ejecución, la tubería se vacía mediante laWrite-Output
cual se coloca una nueva línea entre los elementos.fuente
PHP, 59 bytes
Versión en línea
fuente
No deseado, innecesario, oportunista , 9 bytes
fuente