Il existe actuellement un mème sur Internet qui consiste à prendre une phrase, à inverser le sens et à ajouter n't
à la fin. Par exemple, I am small
devientI am talln't
Défi
Pour relever le défi, nous allons simplifier ceci: votre tâche sera de détecter chaque fois qu'il y a une négation dans une phrase, et de la remplacer par la «positive» avec l' n't
ajout à la fin. Il y aura des parties délicates qui seront expliquées dans les règles.
Règles
- Vous devez prendre une chaîne en entrée et renvoyer une chaîne en sortie .
- L'entrée sera une phrase en minuscule , avec seulement
.
et,
comme signes de ponctuation. - Vous devez remplacer tout
no <any_word>
ounot <any_word>
par<any_word>n't
. no
/not
doit être un mot et non une sous-chaîne: vous n'avez rien à changer dansnone of those
- Si le mot se termine déjà par un
n
, vous devez le remplacern't
par't
:no plan
devenirplan't
et nonplann't
- Quand
no
ounot
n'est suivi d'aucun mot, d'un signe de ponctuation ou d'un autreno
/not
, vous devez le remplacer paryesn't
. - les mots composés comptent pour un mot. donc même s'il
no-op
contient la sous-chaîneno
, il ne contient pas le mot no. Le résultat sera doncno-op
et non-opn't
. - Vous n'avez pas à vous soucier des erreurs de grammaire. Par exemple,
there is no way
résultera enthere is wayn't
. - Aucune échappatoire standard n'est autorisée.
- C'est codegolf , donc le code le plus court l'emporte.
Il y a quelques exemples, même si ce défi ne semble pas clair pour l'instant.
Exemples
Entrée: j'adore le codegolfing, mais je n'aime pas les programmes courts. est-ce que cette phrase a du sens ... bien sûr que non.
Sortie: j'aime le golf de code, mais je n'aime pas les programmes courts. est-ce que cette phrase a du sens ... bien sûr que non.Entrée : vous n'êtes pas invité. Sortez.
Sortie : vous n'êtes pas invité. Sortez.Entrée : je ne suis pas ok, je n'ai pas de plan et je n'ai pas de canon
Sortie : je ne suis pas ok, j'ai plan et je n'ai pas de pistoletEntrée : oh non non non je refuse.
Sortie : oh oui non oui ne refuse pas.Entrée : oh non non non, je refuse.
Sortie : oh oui non oui non oui non, je refuse.Entrée : je ne peux pas le croire, vous ne pouvez pas coder le golf.
Sortie : je ne peux pas le croire, vous ne pouvez pas coder le golf.Entrée : oh non ... il l'a encore fait.
Sortie : oh oui non ... il l'a encore fait.Entrée : nnt n'est pas un mot, kevin. donc ce n'est pas non.
Sortie : nnt n'est pas un mot, kevin. donc ce n'est pas le cas.Entrée : n'est-ce pas clair pas pour tout le monde
Sortie : n'est-ce pas clair pas pour tout le mondeEntrée : ce n'est pas du sens ...
Sortie : ce n'est pas du sens ...
I am small
devenirI am bign't
?no n
traduire parnn't
oun't
?no n
pourrait en résultern't
parce que le «mot» sen
termine par unn
.Réponses:
Rétine ,
867065 octets-16 octets grâce à @Neil .
-5 octets grâce à @ovs .
Essayez-le en ligne.
Explication:
la source
L
voici un raccourci pourA-Z
économiser 2 octetsT`-'`AB
et vice versa.Python 2 ,
208123113 113146 octetsEssayez-le en ligne!
Perdu un tas d'octets à cause des mots se terminant par
n't
oun
. Soit ou est plus court, mais la manipulation des deux était plus longue.la source
JavaScript (Node.js) , 95 octets
Essayez-le en ligne!
Merci Rick Hitchcock pour 2 octets
la source
Stax ,
757350 octetsExécuter et déboguer
la source
Japt , 72 octets
Essayez-le en ligne!
la source
"yes-no maybe-so"
, ça produit"yes - mayben't - so"
.Java 8,
163136 octets-27 octets en créant un port de réponse Stax de @recursive .
Essayez-le en ligne.
la source