Ce défi est inspiré du mème Men of Culture .
Le mème implique de masquer des parties de la légende d'origine,
Ah, je vois que tu es aussi un homme de culture.
pour le faire apparaître comme si le personnage disait autre chose.
Votre défi est d'écrire un programme qui, étant donné une entrée, montre comment la phrase originale peut être effacée pour atteindre la chaîne d'entrée.
Règles:
- Utilisez un
-
caractère pour représenter un caractère masqué. - Vous ne devez pas ajouter de lettres supplémentaires pour obtenir la chaîne d'entrée
- Vous pouvez traiter les comparaisons de chaînes comme insensibles à la casse
- Vous pouvez ignorer les espaces dans les comparaisons de chaînes
- Si aucune substitution n'est possible, affichez une valeur fausse.
- Vous pouvez également remplacer un espace blanc redondant par un
-
, mais ce n'est pas obligatoire. - Lorsque plusieurs solutions sont possibles, vous pouvez générer n'importe laquelle d'entre elles.
Cas de test:
De base:
Ah, I see you're a well.
> Ah, I see you're a --- -- ------- -- well.
Ah, I see well.
> Ah, I see ------ - --- -- ------- -- well.
Cas de bord 1:
What did you just say about me, you little
> false
Cas de bord 2 (édité):
*no input*
> --- - --- ------ - --- -- ------- -- -----
Intermédiaire:
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.
Plus fort:
tea.
> --- - --- ------ - --- -- ---t--e a- ----.
eeeee
> --- - -ee -----e - --- -- ------e -- -e---
TL; DR: étant donné une chaîne d'entrée, affichez une chaîne qui représente la façon dont la chaîne d'origine doit être modifiée pour s'adapter à la chaîne d'entrée, en utilisant un "-" pour représenter un caractère masqué. Si une substitution n'est pas possible, affichez une valeur fausse.
Code golf, donc le code le plus court en octets gagne.
Edit: Clarifications
Ignorer les espaces dans les comparaisons de chaînes signifie que vous pouvez supprimer les espaces avant de comparer les chaînes. Par exemple, les entrées
Ah, a manual
etAh , a manual
sont traitées comme égales. Les autres signes de ponctuation, ' .
doivent être conservés. De même pour la sortie,Ah, a manual
est égal àAh, amanual
.remplacer les espaces blancs redondants fait référence aux espaces présents dans la légende d'origine. Vous n'avez pas besoin de les remplacer par "-", mais si vous remplacez les filets vous avez plus de points, allez-y.
"Ah,<5 SPACES HERE>a manual."
donner?Réponses:
> <> , 94 octets
Essayez-le en ligne!
Respecte la casse, n'ignore pas les espaces ou la ponctuation et génère une chaîne vide si l'entrée n'est pas valide. Si vous voulez essayer d'autres chaînes, vous pouvez simplement modifier la première ligne après le
"v
, tant qu'elle ne contient pas d'"
octet nul.la source
Retina 0.8.2 , 117 octets
Essayez-le en ligne! Pourrait économiser 1 octet en exigeant la respect de la casse. Pourrait économiser 3 octets en revenant
--, - --- ---'-- - --- -- ------- -- ----.
sur une entrée vide. Explication:Ajoutez le texte souhaité à l'entrée.
Déplacez autant de caractères du texte souhaité vers le résultat que possible. Si le caractère est une lettre, il doit également correspondre à la lettre suivante dans l'entrée, qui est ensuite supprimée.
S'il n'y a pas de lettre correspondante dans l'entrée, remplacez-la par a
-
et réessayez.S'il reste des lettres dans l'entrée, supprimez tout, sinon supprimez le reste de l'entrée.
la source
Gelée ,
58554845 octetsEssayez-le en ligne!
Version plus lisible:
Répartition de la compression des chaînes:
la source
Python 2 ,
126114 octetsEssayez-le en ligne!
Python 2 ,
108106 octetsL'entrée est une liste de caractères.
Essayez-le en ligne!
la source
(i=='')
ne pas être(i<' ')
( en utilisant un onglet, le plus bas caractère imprimable)?JavaScript (Node.js) ,
122120 octetsEssayez-le en ligne!
Explication:
Peut être réduit davantage mais remplace également les espaces blancs par «-». Si cela est acceptable,
JavaScript (Node.js) , 112 octets
Essayez-le en ligne!
Réduit encore plus, ne remplace que les espaces blancs qui se trouvent après la chaîne donnée par «-».
JavaScript (Node.js) , 105 octets
Essayez-le en ligne!
la source
What did you just say about me, you little
What did you just say about me, you little
scénario de test. Votre programme produit--- - --- ------ - --- -- ------- -- w----
en sortie ce qui n'est pas ce que la spécification de défi requiert.JavaScript (Node.js) , 135 octets
Essayez-le en ligne!
Si "peut" signifie que faire ou ne pas faire est correct, alors
JavaScript (Node.js) , 106 octets
Essayez-le en ligne!
la source
Brain-Flak ,
764600 octetsEssayez-le en ligne!
De grandes améliorations grâce à Jo King , en particulier dans la construction des cordes mais aussi quelques ajustements logiques dans le corps principal. Explication de sa part
Il est sensible à la casse (donc "Ah, je vois que vous êtes Orwell." Ne correspond pas mais "Ah, je vois que vous êtes orwell." Le fait), les espaces en entrée ne sont pas ignorés et les espaces inégalés dans la chaîne d'origine sont converti en
-
. À ma connaissance, toutes ces options sont valables.Explication:
la source
Haskell ,
182174172171170169 octetsEssayez-le en ligne!
Non golfé:
la source
Prolog (SWI) , 109 octets
Essayez-le en ligne!
Respecte la casse et les espaces. Le
-/2
prédicat est le prédicat principal, son premier argument étant la chaîne d'entrée et le deuxième argument étant la chaîne de sortie.la source
JavaScript (Node.js), 103 octets
Essayez-le en ligne!
Sensible aux majuscules et minuscules.
la source
Pyth , 78 octets SBCS
Suite de
tests Caractères non imprimables présents dans le code, voir le lien pour la version correcte.
Respecte la casse, n'ignore pas les espaces.
la source
Perl 5
-F
, 192 octetsEssayez-le en ligne!
la source