Esse desafio é inspirado no meme Men of Culture .
O meme envolve apagar partes da legenda original,
Ah, vejo que você também é um homem de cultura.
para fazer parecer que o personagem está dizendo outra coisa.
Seu desafio é escrever um programa que, com uma entrada, mostre como a frase original pode ser apagada para atingir a sequência de entrada.
Regras:
- Use um
-
caractere para representar um caractere em branco. - Você não deve adicionar letras adicionais para obter a sequência de entrada
- Você pode tratar comparações de strings como não diferencia maiúsculas de minúsculas
- Você pode ignorar o espaço em branco nas comparações de string
- Se nenhuma substituição for possível, imprima um valor falso.
- Você também pode substituir espaços em branco redundantes por um
-
, embora não seja obrigatório. - Onde várias soluções são possíveis, você pode produzir qualquer uma delas.
Casos de teste:
Básico:
Ah, I see you're a well.
> Ah, I see you're a --- -- ------- -- well.
Ah, I see well.
> Ah, I see ------ - --- -- ------- -- well.
Caso de borda 1:
What did you just say about me, you little
> false
Caso 2 do Edge (editado):
*no input*
> --- - --- ------ - --- -- ------- -- -----
Intermediário:
Ah, I see you're Orwell.
> Ah, I see you're - --- o- -----r- -- well.
Ah, ymca.
> Ah, - --- y----- - m-- -- c------ a- ----.
Ah, a manual.
> Ah, - --- ------ a man -- -u----- a- --l-.
OR: > Ah, - --- ------ a man -- -u----- a- ---l.
Mais difíceis:
tea.
> --- - --- ------ - --- -- ---t--e a- ----.
eeeee
> --- - -ee -----e - --- -- ------e -- -e---
TL; DR: dada uma sequência de entrada, produza uma sequência que represente como a sequência original deve ser modificada para se ajustar à sequência de entrada, usando um "-" para representar um caractere em branco. Se uma substituição não for possível, imprima um valor falso.
Código golf, o código mais curto em bytes vence.
Editar: Esclarecimentos
Ignorar espaços em branco nas comparações de cadeias significa que você pode separar os espaços em branco antes de comparar cadeias. Por exemplo, as entradas
Ah, a manual
eAh , a manual
são tratadas como iguais. Outra pontuação, ' .
deve ser preservada. Da mesma forma para saída,Ah, a manual
é igual aAh, amanual
.espaço em branco redundante substituto refere-se aos espaços presentes na legenda original. Você não precisa substituí-los por "-", mas, ao substituir as redes, você ganha mais pontos, em seguida.
"Ah,<5 SPACES HERE>a manual."
render?Respostas:
> <> , 94 bytes
Experimente online!
Diferencia maiúsculas de minúsculas, não ignora espaços em branco ou pontuação e gera uma string vazia se a entrada for inválida. Se você quiser tentar outras strings, poderá modificar a primeira linha após a
"v
, contanto que não contenha um"
ou um byte nulo.fonte
Retina 0.8.2 , 117 bytes
Experimente online! Pode economizar 1 byte, exigindo distinção entre maiúsculas e minúsculas. Pode salvar 3 bytes retornando
--, - --- ---'-- - --- -- ------- -- ----.
na entrada vazia. Explicação:Anexe o texto desejado à entrada.
Mova o maior número possível de caracteres do texto desejado para o resultado. Se o caractere for uma letra, ele também precisará corresponder à próxima letra da entrada, que será excluída.
Se não houver uma letra correspondente na entrada, altere-a para a
-
e tente novamente.Se ainda houver letras na entrada, exclua tudo, caso contrário, exclua o restante da entrada.
fonte
Geléia ,
58554845 bytesExperimente online!
Versão mais legível:
Quebra de compactação de string:
fonte
Python 2 ,
126114 bytesExperimente online!
Python 2 ,
108106 bytesEntrada é uma lista de caracteres.
Experimente online!
fonte
(i=='')
foi possível(i<' ')
(usando uma guia, o caractere imprimível mais baixo)?JavaScript (Node.js) ,
122120 bytesExperimente online!
Explicação:
Pode ser reduzido ainda mais, mas substitui os espaços em branco por '-'. Se isso é aceitável, então
JavaScript (Node.js) , 112 bytes
Experimente online!
Reduzido ainda mais, apenas substitui os espaços em branco que estão após a sequência especificada por '-'.
JavaScript (Node.js) , 105 bytes
Experimente online!
fonte
What did you just say about me, you little
What did you just say about me, you little
caso de teste. Seu programa produz--- - --- ------ - --- -- ------- -- w----
como saída, que não é o que a especificação de desafio exige.JavaScript (Node.js) , 135 bytes
Experimente online!
Se "pode" significar fazer ou não fazer está bem, então
JavaScript (Node.js) , 106 bytes
Experimente online!
fonte
Brain-Flak ,
764600 bytesExperimente online!
Grandes melhorias graças a Jo King , especialmente na construção de cordas, mas também alguns ajustes lógicos no corpo principal. Explicação dele
Faz distinção entre maiúsculas e minúsculas (portanto, "Ah, eu vejo que você é Orwell." Não corresponde, mas "Ah, eu vejo que você também é." Sim), o espaço em branco na entrada é não ignorado e o espaço em branco inigualável na string original é convertido para
-
. Pelo meu entendimento, todas essas são opções válidas.Explicação:
fonte
Haskell ,
182174172171 171170169 bytesExperimente online!
Ungolfed:
fonte
Prolog (SWI) , 109 bytes
Experimente online!
Diferencia maiúsculas de minúsculas e espaços em branco. O
-/2
predicado é o predicado principal, com seu primeiro argumento sendo a sequência de entrada e o segundo argumento sendo a sequência de saída.fonte
JavaScript (Node.js), 103 bytes
Experimente online!
Maiúsculas e Minúsculas.
fonte
Pitão , 78 bytes SBCS
Conjunto de testes Caracteres não imprimíveis presentes no código, consulte o link para a versão correta.
Diferencia maiúsculas de minúsculas, não ignora o espaço em branco.
fonte
Perl 5
-F
, 192 bytesExperimente online!
fonte