Escriba un programa que tome una cadena de entrada de longitud de 2 o más caracteres y agregue la cadena ~BOO!~
(esa cadena tiene un espacio inicial y final) en un punto uniforme al azar en la cadena que no está en ninguno de los extremos.
Entradas de muestra no permitidas : 2
o
(una entrada vacía)
Salidas de muestra no permitidas : Hello ~BOO!~
o ~BOO!~ Hello
para la entradaHello
Entrada de muestra :Hello, World!
Resultados de muestra : Hel ~BOO!~ lo, World!
oHello, Worl ~BOO!~ d!
Este es el código de golf, amigos. Aplican reglas estándar. El código más corto en bytes gana.
¡Felicitaciones a Dennis por tener el programa más corto y espeluznante! ¡Feliz Halloween!
Respuestas:
Pyth,
1918 bytes¡Gracias a @Jakube por jugar golf en 1 byte!
Pruébalo en línea.
Cómo funciona
fuente
GML, 91 bytes
Suficientemente simple: obtenga una cadena, inserte la subcadena en ella y envíe la cadena. Hecho.
fuente
Python 3, 60 bytes
Nota:
El módulo de
hash()
se distribuirá uniformemente a lo largo de la cuerda. Si cree que eso está doblando las reglas, tenga en cuenta que debido a la aleatorización de hash de Python, esto es realmente aleatorio: las ejecuciones repetidas con la misma entrada darán resultados diferentes.fuente
CJam, 20 bytes
Pruébalo en línea
Explicación:
fuente
Pip, 19 bytes
Toma información de la línea de comandos. Si la entrada tiene espacios u otros caracteres especiales, deberá colocarse entre comillas.
Explicación:
fuente
Julia, 70 bytes
Sin golf:
fuente
APL, 27 bytes
APL no tiene una función de inserción, por lo que rotamos la cadena en su lugar.
Ejemplo de entrada en TryAPL
fuente
Vitsy, 19 bytes
Tenga en cuenta que
z
yZ
fueron editados hoy, pero no para este desafío.fuente
Lua, 75 bytes
fuente
Python 3, 79 bytes
Pruébalo en línea
Se explica por sí mismo: lea una cadena, elija un número entero aleatorio entre 1 y la longitud de la cadena e imprima la cadena con
' ~BOO!~ '
insertada.fuente
print
se imprimen varios argumentos separados por espacios, puede cortar los espacios conprint(s[:n],'~BOO!~',s[n:])
.Perl, 35 bytes
Código de 34 bytes + línea de comando de 1 byte
Uso:
fuente
C #, 125 bytes
Expandido:
Esta solución supone que la cadena se pasa como el primer parámetro de línea de comandos. Esto no es habitual para C # (stdin es más normal), por lo que también he incluido una solución que usa stdin normal:
C #, 139 bytes
Expandido:
fuente
static void Main(string[] x) {Console.Write(x[0].Insert (...) x[0].Length (...)
acortará su códigoMATLAB, 69 bytes
Insertar una cadena a mitad de cadena en un índice dado en MATLAB es costoso en términos de bytes. Si hubiera una manera simple de hacerlo, podría ahorrar una buena cantidad al pasar a una función anónima, pero no puedo encontrar una. Ah bueno.
Básicamente, obtiene un número aleatorio entre 1 y la longitud de la cadena menos 1. Luego muestra todo hasta ese índice, incluido el índice, seguido de
~Boo!~
, y luego todo después del índice hasta el final.También funciona con Octave , por lo que puede probarlo en línea aquí .
fuente
Bash / GNU, 61 bytes
Toma la cadena de entrada como argumento
fuente
Ruby, 46 bytes
fuente
JavaScript, 79
Es para la consola del navegador; diviértete con eso.
fuente
Java 8,
158154bytesPruébalo aquí.
EDITAR: solo ahora lee el programa en lugar de la función / programa predeterminado en la descripción del desafío. Así que agregó el código de borde con la interfaz y el método principal.
Si se permitiera una función, sería (
9995 bytes )Pruébalo aquí.
Explicación:
fuente
Chaine , 23 bytes
fuente
TeaScript, 30 bytes
Muy sencillo.
fuente
CJam, 19 bytes
fuente
mr
regrese0
o1
, porque ni-1
ni0
son válidos para dividir una cadena con/
.BOO
al final de la cadena, también necesitarías un(
antesmr
. Pero entonces es idéntico a esta respuesta: codegolf.stackexchange.com/a/62355/8478q
yl
son sinónimos).