Dada una cadena no vacía de letras minúsculas ASCII a-z
, envíe esa cadena con cada "ejecución" consecutiva de la misma letra alargada por una copia más de esa letra.
Por ejemplo, dddogg
( 3 d
', 1 o
, 2 g
') se convierte en ddddooggg
( 4 d
', 2 o
', 3 g
').
Este es el código de golf : gana la respuesta más corta en bytes.
Casos de prueba
aabbcccc -> aaabbbccccc timbre -> ddooorrbbeelll uuuuuuuuuz -> uuuuuuuuuuzz q -> qq xyxyxy -> xxyyxxyyxxyy xxxyyy -> xxxxyyyy
Respuestas:
05AB1E , 5 bytes
Explicación:
Pruébelo en línea o como un conjunto de pruebas .
Enclose es una nueva y bonita construcción; Es la primera vez que lo uso. Muy conveniente ;)
05AB1E , 4 bytes (no competitivos)
.¡
ha sido reemplazado porγ
en la última actualización.fuente
dddd
al primer elemento de la matriz en la pila en la explicación después de que se ejecuta "encierre".Ć
?xx -> xxxx
cuándo debería serxx -> xxx
...?Python 3 , 44 bytes
Pruébalo en línea!
fuente
Retina , 11 bytes
Pruébalo en línea!
Reemplaza cada ejecución de caracteres con uno de los caracteres de la ejecución seguido de la ejecución en sí.
fuente
Pyth , 7 bytes
Banco de pruebas .
Cómo funciona
fuente
MATL , 5 bytes
Pruébalo en línea!
Explicación
Considere la entrada
'doorbell'
.fuente
Alice , 17 bytes
Pruébalo en línea!
Explicación
Este es un marco para programas que operan completamente en modo Ordinal y son esencialmente lineales (se pueden escribir bucles simples, y se usa uno en este programa, pero es más complicado trabajar con flujo de control de otra manera aquí). El puntero de instrucciones rebota diagonalmente hacia arriba y hacia abajo a través del código de izquierda a derecha, luego es desplazado por una celda por los dos espejos al final, y se mueve hacia atrás de derecha a izquierda, ejecutando las celdas que omitió en la primera iteración. La forma linealizada (ignorando los espejos) básicamente se ve así:
Veamos esto:
fuente
Jalea , 6 bytes
Pruébalo en línea!
Solo funciona como un programa completo (es decir, salida en cadena).
fuente
Brachylog , 8 bytes
Pruébalo en línea!
Explicación
fuente
~
tenga prioridad sobre metapredicados (o cambiarlo a una operación de postfix); si lo hicieras, podrías hacerlo en siete.C, 49 bytes
Véalo trabajar en línea .
fuente
Python 2 , 47 bytes
Pruébalo en línea!
fuente
C, 53 bytes
Pruébalo en línea!
fuente
PHP, 40 bytes
Versión en línea
PHP <7.1, 44 bytes
Versión sin expresiones regulares
Versión en línea
fuente
Japt , 8 bytes
7 bytes de código, +1 para la
-P
bandera.¡Pruébalo en línea!
Explicación
Esto utiliza el
ó
(partición en falso) incorporado que acabo de agregar ayer:fuente
Hexagonía , 33 bytes.
Expandido:
Pruébalo en línea!
El pseudocódigo es más o menos:
fuente
JavaScript (ES6),
3330 bytesIntentalo
fuente
brainfuck , 23 bytes
Pruébalo en línea!
Explicación
fuente
Perl 6 , 18 bytes
Intentalo
Expandido:
fuente
05AB1E , 8 bytes
Pruébalo en línea!
Explicación:
fuente
Haskell, 36 bytes
Ejemplo de uso:
f "aab"
->"aaabb"
. Pruébalo en línea!Cuando la cadena tiene al menos dos caracteres, únete
a
al primer carácter,b
al segundo yc
al resto de la cadena. La salida esa
seguida pora
sia
no es igual ab
seguido por una llamada recursiva conb:c
. Si solo hay un personaje, el resultado es dos veces este personaje.fuente
CJam, 10 bytes
Pruébalo en línea!
Explicación:
fuente
Rubí, 30 bytes.
fuente
Jalea , 5 bytes
Pruébalo en línea!
Cómo funciona
fuente
Lote, 140 bytes
Toma entrada en STDIN.
fuente
sed,
1815 bytes (+1 para -r)Solución original
fuente
R, 36 bytes
fuente
PowerShell, 50 bytes
Pruébalo en línea!
fuente
Mathematica,
3421 bytes¡Gracias a Martin Ender por encontrar la manera correcta de hacer esto en Mathematica, ahorrando 13 bytes!
Función pura que utiliza una matriz de caracteres como formatos de entrada y salida.
Split
separa una lista en sus series de caracteres iguales.##&[#,##]&
es una función que devuelve una secuencia de argumentos: se alimenta el primer argumento, luego todos los argumentos (repitiendo el primero en particular); Esto se aplica (@@@
) a cada sublista de laSplit
lista.fuente
##&[#,##]&@@@Split@#&
? (Sin probar)Gather
realidad no funciona si hay varias ejecuciones del mismo personaje (pero afortunadamenteSplit
es un byte más corto de todos modos)Split
en mi corazón) ¡Construcción maravillosa en tu primer comentario!Java,
15114660 bytesRegex
Detallado
fuente
Matcher
yPattern
? Puede jugar golf a 60 bytes de esta manera:String f(String s){return s.replaceAll("((.)\\2*)","$1$2");}
brainfuck , 38 bytes
Pruébalo en línea!
fuente
Alice , 12 bytes
Dos bytes se jugaron gracias a Martin Ender incluso antes de que se publicara esta respuesta. Es más poderoso de lo que puedas imaginar.
Pruébalo en línea!
Explicación
fuente