Escreva um programa que use uma string de entrada com 2 ou mais caracteres e inclua a string ~BOO!~
(essa string possui um espaço inicial e final) em um local aleatoriamente uniforme na string que não está em nenhuma das extremidades.
Entradas de amostra não permitidas : 2
ou
(uma entrada vazia)
Saídas de amostra não permitidas : Hello ~BOO!~
ou ~BOO!~ Hello
para a entradaHello
Entrada de amostra :Hello, World!
Saídas de amostra : Hel ~BOO!~ lo, World!
ouHello, Worl ~BOO!~ d!
Isso é código de golfe, pessoal. Aplicam-se regras padrão. O código mais curto em bytes vence.
Parabéns a Dennis por ter o programa mais curto e assustador! Feliz Dia das Bruxas!
Respostas:
Pitão,
1918 bytesGraças a @Jakube por jogar fora 1 byte!
Experimente online.
Como funciona
fonte
GML, 91 bytes
Simples o suficiente - pegue uma string, insira a subcadeia, produza a string. Feito.
fonte
Python 3, 60 bytes
Nota:
O módulo de
hash()
será distribuído uniformemente ao longo do comprimento da corda. Se você acha que isso está distorcendo as regras, observe que, devido à randomização de hash do python, isso é realmente aleatório: execuções repetidas com a mesma entrada fornecerão resultados diferentes.fonte
CJam, 20 bytes
Experimente online
Explicação:
fonte
Pip, 19 bytes
Recebe entrada da linha de comando. Se a entrada tiver espaços ou outros caracteres especiais, ela precisará ser colocada entre aspas.
Explicação:
fonte
Julia, 70 bytes
Ungolfed:
fonte
APL, 27 bytes
O APL não possui uma função de inserção, portanto, giramos a string.
Exemplo de entrada no TryAPL
fonte
Vitsy, 19 bytes
Observe que
z
eZ
foram editados hoje, mas não para esse desafio.fonte
Lua, 75 bytes
fonte
Python 3, 79 bytes
Experimente online
Muito auto-explicativo - leia uma sequência, escolha um número inteiro aleatório entre 1 e o comprimento da sequência e imprima a sequência com
' ~BOO!~ '
inserida.fonte
print
são impressos separados por espaço, você pode cortar os espaços comprint(s[:n],'~BOO!~',s[n:])
.Perl, 35 bytes
Código de 34 bytes + linha de comando de 1 byte
Uso:
fonte
C #, 125 bytes
Expandido:
Esta solução pressupõe que a cadeia seja passada como o primeiro parâmetro da linha de comandos. Isso não é usual para C # (stdin é mais normal), então eu também incluí uma solução que usa stdin normal:
C #, 139 bytes
Expandido:
fonte
static void Main(string[] x) {Console.Write(x[0].Insert (...) x[0].Length (...)
diminuirá seu códigoMATLAB, 69 bytes
Inserir uma string no meio de um índice no MATLAB é caro em termos de bytes. Se houvesse uma maneira simples de fazer isso, eu poderia economizar uma quantia razoável, passando para uma função anônima, mas não consigo encontrar uma. Ah bem.
Basicamente, ele obtém um número aleatório entre 1 e o comprimento da string menos 1. Em seguida, ele exibe tudo, inclusive esse índice, seguido pelo
~Boo!~
, e tudo depois do índice até o final.Também funciona com o Octave , para que você possa testá-lo online aqui .
fonte
Bash / GNU, 61 bytes
Pega a string de entrada como argumento
fonte
Ruby, 46 bytes
fonte
JavaScript, 79
É para o console do navegador; divirta-se apenas colocando isso.
fonte
Java 8,
158154 bytesExperimente aqui.
EDIT: Somente agora lendo o programa em vez da função / programa padrão na descrição do desafio. Adicionamos o código de borda com a interface e o método principal.
Se uma função fosse permitida, seria (
9995 bytes )Experimente aqui.
Explicação:
fonte
Chaîne , 23 bytes
fonte
TeaScript, 30 bytes
Muito direto.
fonte
CJam, 19 bytes
fonte
mr
retornar0
ou1
, porque nem-1
nem0
são válidos para dividir uma string/
.BOO
no final da string, você também precisaria de um(
antesmr
. Mas é idêntico a esta resposta: codegolf.stackexchange.com/a/62355/8478q
el
é sinônimo).