Mini-golfe de segunda-feira: Uma série de perguntas curtas sobre código de golfe , postadas (espero!) Toda segunda-feira.
Às vezes, as pessoas se cansam das regras da vida: "não faça isso", "você não pode fazer isso", "não vamos deixar você fazer isso". Às vezes pode parecer realmente restritivo! Mas de vez em quando é bom se divertir um pouco, então vamos escrever um código para modificar essas regras. E enquanto estamos nisso, também pode modificar outra negatividade. (É claro que essas modificações não serão apenas temporárias, portanto deixaremos o texto original também.)
Desafio
Seu desafio é escrever um programa ou função que coloque <s>
rasuras em HTML em </s>
torno de palavras restritivas - ou seja, palavras terminadas em n't
ou seguidas de not
- e depois de cada uma delas, insira seu equivalente positivo em TODOS OS CAPS. No final, após um espaço, o número de substituições feitas deve ser incluído. Por exemplo:
Please don't jump into the pool.
torna-se
Please <s>don't</s> DO jump into the pool. 1
Para palavras que terminam em n't
ou são seguidas por not
(assim como cannot
), o equivalente positivo é tudo até o acima mencionado not
(excluindo espaços). Aqui está o que eu quero dizer:
do not speak
torna-se<s>do not</s> DO speak
it doesn't work
torna-seit <s>doesn't</s> DOES work
we cannot
torna-sewe <s>cannot</s> CAN
No entanto, existem algumas exceções. Certifique-se de que eles sejam manuseados corretamente.
can't -> <s>can't</s> CAN
won't -> <s>won't</s> WILL
ain't -> <s>ain't</s> AM
shan't -> <s>shan't</s> SHALL
I'm not -> <s>I'm not</s> I AM
you're not -> <s>you're not</s> YOU ARE
Detalhes
- A entrada nunca conterá nenhum espaço em branco, exceto os espaços normais (sem guias, novas linhas etc.).
- A entrada nunca conterá nenhum duplo negativo (por exemplo
we can't not do this
). - Se a
not
aparecer imediatamente após um sinal de pontuação ou como parte de outra palavra, deixe-o como está. - Certifique-se de preservar o texto original, incluindo maiúsculas / minúsculas, entre as
<s></s>
tags. - Se desejar, você pode usar
<strike></strike>
no lugar de<s></s>
.
Casos de teste
Entradas:
I'm sorry, but you can't do that.
Driving on the beach isn't allowed.
Driving on the beach is not allowed.
Please don't jump in; I cannot imagine what might come of that.
Don't worry; we won't get into trouble.
I'm not perfect, but you're not either.
You shan't do it 'cause I ain't doin' it!
Can't we capitalize special cases?
I don't like the words can't, shan't, won't, don't, ain't, or ppcgn't.
Oh, this? It's nothing.
Tie a slipknot in the rope.
Would you like Pinot Noir?
This sentence contains none of the replacement words. Not even knot or ca't.
This sentence doesn't contain one of the replacement words.
Saídas:
I'm sorry, but you <s>can't</s> CAN do that. 1
Driving on the beach <s>isn't</s> IS allowed. 1
Driving on the beach <s>is not</s> IS allowed. 1
Please <s>don't</s> DO jump in; I <s>cannot</s> CAN imagine what might come of that. 2
<s>Don't</s> DO worry; we <s>won't</s> WILL get into trouble. 2
<s>I'm not</s> I AM perfect, but <s>you're not</s> YOU ARE either. 2
You <s>shan't</s> SHALL do it 'cause I <s>ain't</s> AM doin' it! 2
<s>Can't</s> CAN we capitalize special cases? 1
I <s>don't</s> DO like the words <s>can't</s> CAN, <s>shan't</s> SHALL, <s>won't</s> WILL, <s>don't</s> DO, <s>ain't</s> AM, or <s>ppcgn't</s> PPCG. 7
Oh, this? It's nothing. 0
Tie a slipknot in the rope. 0
Would you like Pinot Noir? 0
This sentence contains none of the replacement words. Not even knot or ca't. 0
This sentence <s>doesn't</s> DOES contain one of the replacement words. 1
Pontuação
Este é o code-golf , pelo que o código válido mais curto em bytes vence. O desempatador vai para o envio que atingiu sua contagem final de bytes primeiro. O vencedor não será escolhido na próxima segunda-feira, 26 de outubro. Boa sorte!
Can't we capitalize special cases?
Oh this? It's nothing...
ou I wonder if we'll notice any words like this?
?