Utilisez ce bon mème


12

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 smalldevientI 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'tajout à 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>ou not <any_word>par <any_word>n't.
  • no/ notdoit ê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 remplacer n'tpar 't: no plandevenir plan'tet non plann't
  • Quand noou notn'est suivi d'aucun mot, d'un signe de ponctuation ou d'un autre no/ not, vous devez le remplacer par yesn't.
  • les mots composés comptent pour un mot. donc même s'il no-opcontient la sous-chaîne no, il ne contient pas le mot no. Le résultat sera donc no-opet non -opn't .
  • Vous n'avez pas à vous soucier des erreurs de grammaire. Par exemple, there is no wayrésultera en there is wayn't.
  • Aucune échappatoire standard n'est autorisée.
  • C'est , 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 pistolet

Entré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 monde

Entrée : ce n'est pas du sens ...
Sortie : ce n'est pas du sens ...


1
Dans l'introduction, ne devrait pas I am smalldevenir I am bign't?
RedClover

4
Un point dit "l'entrée ne sera [...] qu'avec seulement. Et,". Un autre se réfère à "no-op". Mais cela contient un "-". "-" est-il autorisé ou non?
récursif

Doit se no ntraduire par nn'tou n't?
Kevin Cruijssen

no npourrait en résulter n'tparce que le «mot» se ntermine par un n.
Le mec au hasard

@Soaku petit, grand, grand, petit, grand, long, court, etc. sont tous utilisés de manière interchangeable. Cela n'a pas vraiment d' importance pour le bien de la question. Mais l'antonyme le plus logique pour petit serait grand, oui.
Yates

Réponses:


5

Rétine , 86 70 65 octets

T`-'`L
\bnot?\s+(?!not?\b)(\w+?)n?\b
$1n't
\bnot?\b
yesn't
T`L`-'

-16 octets grâce à @Neil .
-5 octets grâce à @ovs .

Essayez-le en ligne.

Explication:

T`-'`L             # Replace all "-" with "A" and all "'" with "B" to store them

\bnot?             # Then replace the word "no" or "not",
 \s+               #  followed by 1 or more whitespaces,
 (?!not?\b)(\w+?)  #  followed by a word/letter that is not "not" or "no"
 n?\b              #  minus a single trailing "n" if there are any
$1                 # with: the word/letter
 n't               #  appended with "n't"

\bnot?\b           # Then replace any remaining loose "no" or "not"
yesn't             # with "yesn't"

T`L`-'             # And finally replace all "A" with "-" and all "B" with "'" again

Je pense que cela ne devrait pas être le cas
Dead Possum

@DeadPossum Oui, j'y ai pensé moi-même pour l'instant et j'ai déjà demandé à OP si "non" est possible dans l'entrée.
Kevin Cruijssen

1
C'est étrange aussi
Dead Possum

1
Je pense que je l'ai à 70 octets .
Neil

1
Lvoici un raccourci pour A-Zéconomiser 2 octets T`-'`ABet vice versa.
Neil

4

Python 2 , 208 123 113 113 146 octets

lambda s:re.sub(r"\bnot?\b(?!['-])(\s(?!not?(\b)(?!['-]))([\w'-]+))?",lambda m:(m.group(3)or"yes")+"n't"[(m.group(3)or'')[-1:]=='n':],s)
import re

Essayez-le en ligne!

Perdu un tas d'octets à cause des mots se terminant par n'tou n. Soit ou est plus court, mais la manipulation des deux était plus longue.





En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.