Desafío
Para cada carácter de la cadena, excepto el último, haga lo siguiente:
Salida del personaje actual.
Seguido de la salida aleatoria de la siguiente lista un número aleatorio de veces entre 1 y 5 (inclusive):
- El personaje actual
- El siguiente caracter de la cadena
- La versión del caso de cambio del personaje en el que estás actualmente
- La versión del caso de cambio del siguiente carácter de la cadena.
Casos de prueba
String
-> SSSTSStrTrIiinIIngn
, . , . , . Hello world!
-> ,,, .. , ,, .... , , .. .. . HHH HHEeelLlLllooO wwOworOOrrrRllDd!!D
Programming Puzzles and Code Golf
-> PrPPrRrOooooogggRgGraAraaaMMMmmmimMIiininGGgG PPPPuZzZZzZzzZzllLLEEeEsEsssS a aANnNddD C COCoooOOdeDe E GGGoOllFFf
Notas
- Solo necesita aplicar la versión del caso de cambio de un carácter si el carácter es parte del alfabeto (AZ y az).
- Su función aleatoria no necesita ser uniforme, pero aún debe tener la posibilidad de devolver cualquier elemento en la lista dada.
- Puede usar cualquier formato de E / S estándar.
- Puede suponer que la longitud de la entrada es mayor o igual que dos.
- Puede suponer que la entrada solo consta de caracteres ASCII.
- El título no es un caso de prueba (no es intencional si es un caso de prueba válido).
- Switchcase significa convertir el carácter en minúsculas si está en mayúsculas y convertirlo en mayúsculas si está en minúsculas.
String
produceSSSTSStrTrIiinIIngn
[S]SSTSS [t]rT, [r]I, [i]inII, [n]gn
, donde los caracteres entre los bloques son los primeros puntos (" Mostrar el carácter actual "), y los otros caracteres son 1-5 veces al azar una de las cuatro opciones para eso personaje. Pero estoy de acuerdo, algunas explicaciones más explícitas serían apropiadas. Aparte del caso de prueba, no estaba particularmente claro, tenemos que elegir una opción aleatoria 1-5 veces. En lugar de elegir una opción aleatoria repetida 1-5 veces (como lo hace actualmente la respuesta de Gaia).Respuestas:
Gaia , 25 bytes
Pruébalo en línea!
¡Gracias a Kevin Cruijssen por señalar 2 errores!
Tenga en cuenta que
4ṛ
es porqueṛ
se implementa para un enteroz
como pythonrandom.randint(1,z+1)
, que devuelve un enteroN
tal que1<=N<=z+1
.fuente
SSSTSStrTrIiinIIngn
([SSSTSS, trT, rI, iinII, ngn]
) parece reflejar esto, y actualmente no es una salida posible en su programa (creo).5ṛ
puede resultar6
por alguna razón Pruébalo en línea ? PD: ¿No hay una lista de números enteros o for-loop en Gaia?for
construcción de tipo, pero estoy bastante seguro deₓ
que ni siquiera está documentada en la página wiki.APL (dzaima / APL) , 23 bytes
Función de prefijo tácito anónimo.
Pruébalo en línea!
2(
…)/
Aplique la siguiente función tácita infija entre cada par de caracteres:-
la caja⍤
de cambio de,
la concatenación de la pareja,,
anteponer la concatenación de la pareja a ese{
...}⊇
seleccione los siguientes elementos de eso:?5
número aleatorio en el rango 1 ... 54⍴⍨
que cuantas patas?
índices aleatorios para aquellos∊
ϵ nlist (aplanar)fuente
Perl 6 , 60 bytes
Pruébalo en línea!
La parte en minúscula / mayúscula es un poco molesta.
fuente
$/
y$0
juntos y usar.lc
en esa cadena, y luego crear una copia de esa cadena y usar.uc
, y concatenar esos dos juntos? No estoy seguro si eso es posible, o más corto que el actual$/.lc,$/.uc,$0.lc,$0.uc
, pero eso significaría que tendría que utilizar$/
,$0
,.lc
, y.uc
una vez cada uno.(.lc~.uc for $0~$/).comb
es más largo. Perl 6 realmente quiere distinguir cadenas y listas, por"abc"[0] eq "abc"
lo tanto (pretende ser una lista de un solo elemento).{.lc,|.uc}($/,|$0)
para -5 bytes, y simplemente use la lista de coincidencias{.lc,|.uc}(@$/)
para -8 bytes. tio.run/…Jalea , 12 bytes
Pruébalo en línea!
fuente
Golpetazo , 121 bytes
-20 bytes gracias a Nahuel
-9 bytes gracias a roblogic
Pruébalo en línea!
Respuesta original
Bash , 150 bytes
He hecho muy pocos golpes de golf e intentado mejorar mi golpe, así que cualquier comentario será bienvenido.
Pruébalo en línea!
El código es un bucle directo a través de caracteres que configuran el carácter actual
c
y el siguienten
, luego crea una matriz de las 4 posibilidades, repite una de ellas para que haya exactamente 5. Luego barajamos esa matriz y luego elegimos n elementos de ella, donde n es aleatorio entre 1 y 5.fuente
printf %s "$c"
do
ydone
puede ser reemplazado por indocumentado{
y}
Python 2 , 107 bytes
Pruébalo en línea!
fuente
05AB1E ,
1817 bytesInspirado por la respuesta de Gaia de @Giuseppe .
-1 byte gracias a @Shaggy .
Pruébelo en línea 10 veces o verifique todos los casos de prueba 10 veces .
Explicación:
fuente
INè
, ¿podrías salvar algo presionando al primer personaje dey
?¨vNUy5LΩFy¹X>è«D.š«Ω?
t
,T
os
para la entrada"String"
en su programa, mientras se supone que siempre comienza con elS
.Carbón , 27 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Recorra todos los índices de la cadena de entrada.
Excepto por el primer índice, repita un número aleatorio del 1 al 5 inclusive ...
... extraiga los caracteres anteriores y siguientes de la cadena, tome las versiones en mayúsculas y minúsculas, y elija un carácter aleatorio de los cuatro.
Imprime el carácter en el índice actual.
fuente
perl 5 (
-p
), 77 bytesTIO
fuente
$&
lugar de$1
, ychop
+ en-l
lugar des/.$//
Japt
-P
, 14 bytesIntentalo
fuente
Python 3 , 167 bytes
Pruébalo en línea!
fuente
Jalea , 14 bytes
Pruébalo en línea!
Explicación
fuente
C (GCC)
175162 bytes-12 bytes de LambdaBeta
Pruébalo en línea
fuente
0
en la primera línea.S
como parámetro y agregando sus variables a la lista de argumentos: ¡ Pruébelo en línea!0
, lo que hizo que no vale la pena tener la#define
másPowerShell ,
1541051039587 bytes-67 bytes gracias a mazzy que no puede ser detenido
Pruébalo en línea!
No es un método fantástico pero funciona.Ahora está bastante bien. Toma entrada a través de salpicadurasfuente
Scala 2.12.8, 214 bytes
Versión de golf:
Golfizado con nuevas líneas y sangrías:
Sin golf:
fuente
a :: b :: Nil
ena::b::Nil
? Lo mismo paraa :+
,a:+()
oa.:+()
podría funcionara::b::Nil
provoca un error de compilación.+:
¿Es un método definido en la lista, por lo que podría ahorrar espacio al deshacerse de los parentes externos?Perl 5
-n
, 61 bytesPruébalo en línea!
fuente
C # (compilador interactivo de Visual C #) ,
236213209 bytesPruébalo en línea!
fuente
char b=a[0]
->var b=a[0]
, espacio adicional en la declaración ded
for-loopConsulta T-SQL, 286 bytes
Pruébelo en línea desafortunadamente, la versión en línea siempre muestra el mismo resultado para el mismo varchar, a diferencia de MS SQL Server Management Studio
fuente
C # (compilador interactivo de Visual C #) , 156 bytes
Pruébalo en línea!
fuente
Japt
-P
,4316 bytesAcortado por mucho ahora!
Intentalo
fuente
ä
la descripción dice que da tres argumentos, siendo el últimox+y
. Pero como puede ver aquí , solo devuelve 1. ¿Es esto un error?C (gcc) ,
110109 bytesPruébalo en línea!
-1 gracias a ceilingcat
El número de caracteres impresos (por carácter de entrada) no es uniformemente aleatorio:
fuente
Zsh,
113107 bytesCon mucha ayuda de
man zshexpn
yman zshparam
. Pruébalo en línea!fuente