Atualmente, existe um meme na internet que consiste em tomar uma sentença, reverter o significado e adicionar n't
no final. Por exemplo, I am small
torna-seI am talln't
Desafio
Para o desafio, simplificaremos o seguinte: sua tarefa será detectar sempre que houver uma negação em uma frase e substituí-la pela positiva, n't
adicionando no final. Haverá algumas partes complicadas que serão explicadas nas regras.
Regras
- Você precisa pegar uma String como entrada e retornar uma String como saída .
- A entrada será uma frase em minúscula , com apenas
.
e,
como sinais de pontuação. - Você tem que substituir qualquer
no <any_word>
ounot <any_word>
com<any_word>n't
. no
/not
tem que ser uma palavra e não uma substring: você não precisa alterar nadanone of those
- Se a palavra já terminar com a
n
, você deverá substituirn't
por't
:no plan
torneplan't
e nãoplann't
- Quando
no
ounot
não for seguido por nenhuma palavra, um sinal de pontuação ou outrono
/not
, você deverá substituí-lo poryesn't
. - palavras compostas contam como uma palavra. portanto, mesmo que
no-op
contenha a substringno
, não contém a palavra não. Então o resultado seráno-op
e não-opn't
. - Você não precisa se preocupar com erros gramaticais. Por exemplo,
there is no way
resultará emthere is wayn't
. - Não são permitidas brechas padrão.
- Este é um codegolf , então o código mais curto vence.
Existem alguns exemplos, mesmo que esse desafio pareça claro, não por enquanto.
Exemplos
Entrada: eu amo codegolfing, mas eu não gosto de programas curtos. essa frase faz sentido ... é claro que não.
Saída: eu amo codegolfing, mas eu não gosto de programas curtos. Essa frase faz sentido ... é claro que não.Entrada : você não está convidado. saia.
Saída : você não está convidado. saia.Entrada : não estou bem, não tenho plano e não tenho armas
Saída : não estou bem, tenho plano e não tenho armasEntrada : oh não não não eu recuso.
Saída : ah, sim, não, não, não se recusa.Entrada : oh não não não, eu me recuso.
Saída : oh sim não sim não sim não, eu recuso.Entrada : não acredito nisso, você não pode codegolf.
Saída : não acredito nisso, você não pode codegolf.Entrada : oh não ... ele fez isso de novo.
Saída : oh sim não ... ele fez isso de novo.Entrada : n't não é uma palavra, kevin. então isso não é não.
Saída : n't não é uma palavra, kevin. então isso não é não.Entrada : isso não está claro, não é para todos
Saída : isso não está claro, não é para todosEntrada : isso não faz sentido ...
Saída : isso não faz sentido ...
I am small
tornarI am bign't
?no n
resultar emnn't
oun't
?no n
deve resultarn't
porque a 'palavra'n
termina com an
.Respostas:
Retina ,
867065 bytes-16 bytes graças a @Neil .
-5 bytes graças a @ovs .
Experimente online.
Explicação:
fonte
L
Aqui está uma abreviação deA-Z
, economizando 2 bytesT`-'`AB
e vice-versa.Python 2 ,
208123113146 146 bytesExperimente online!
Perdeu um monte de bytes por causa das palavras que terminam em
n't
oun
. Ou é mais curto, mas o manuseio de ambos foi mais longo.fonte
JavaScript (Node.js) , 95 bytes
Experimente online!
Obrigado Rick Hitchcock por 2 bytes
fonte
Stax ,
757350 bytesExecute e depure
fonte
Japonês , 72 bytes
Experimente online!
fonte
"yes-no maybe-so"
produz"yes - mayben't - so"
.Java 8,
163136 bytes-27 bytes criando uma porta da resposta @recursive 's Stax' .
Experimente online.
fonte