Dans le moins d'octets possible, déterminez si les deux valeurs données correspondent chacune à l'une des suivantes:
Première valeur
2 string or integer - whichever you prefer
to case insensitive
too case insensitive
two case insensitive
t0 case insensitive (t zero)
Deuxième valeur
b case insensitive
be case insensitive
bee case insensitive
b3 case insensitive
Exemples
2 'Bee' true
'2' 'b' true
'not to' 'be' false
'that is' 'the question' false
Réponses:
Shakespeare , 4778 octets
Remarque: cette réponse n'est pas censée être un concurrent sérieux
Affiche 0 si faux, 1 si vrai.
Cela pourrait facilement être plus court (et si les gens le veulent vraiment, la longueur des mots pourrait être réduite), mais cela serait une gifle pour le bon vieux Will. J'ai toujours pensé que Horatio était le héros méconnu de Hamlet, alors je me suis assuré qu'il était le seul à livrer l'intense monologue à Hamlet où Hamlet doit finalement prouver qu'il est aussi bon que Horatio (qui représente la nouvelle ligne).
Le code lui-même est assez simple. Tous les caractères sans Hamlet sont des valeurs ascii (dans l'ordre:)
newline,space,0,2,3,B,b,E,e,O,o,T,t,V,v
, puis le code est une machine à états simple (en particulier, un DFA ) qui passe enScene XI
tant qu'état d'acceptation et enScene XII
tant qu'état de rejet..
Après avoir fait cela, je l'ai simplement connecté à Shakespeare, en utilisant le fait que je pouvais passer à l'état suivant lorsqu'ils étaient numériquement adjacents. Je ne l'ai testé qu'avec la version de Shakespeare que j'ai liée dans le titre, mais je crois que nous définissons un langage par une implémentation iirc.
la source
Rétine , 28
Peut-être ma réponse la plus rapide de code-golf jamais - 9 minutes après OP.
Les paramètres d'entrée sont séparés par des virgules. La sortie est 1 pour true et 0 pour falsey.
Essayez-le en ligne.
la source
Pyth, 34 octets
Essayez-le en ligne: Démonstration
Explication:
la source
Pyth, 41 octets
Essayez-le ici!
Recherche de liste simple. Imprime une liste vide comme valeur falsifiée et une liste non vide comme valeur véridique.
Vous cherchez ou mieux, je n'aime pas vraiment celui-ci.
la source
Oracle SQL 11.2, 86 octets
Renvoie une ligne pour true et aucune ligne pour falsey.
la source
05AB1E ,
3945 octetsCode:
Essayez-le en ligne!
Utilise l'encodage CP-1252. La vérité est quand un nombre est sorti et la fausseté est quand rien n'est sorti.
Version non concurrente (39 octets) , fonctionne avec la dernière version:
la source
ES6,
564845 octets5 octets enregistrés grâce à @ user81655. Enregistré 3 octets d'une optimisation supplémentaire. Sauvegardé encore 3 octets grâce à @Patrick Roberts.
t[wo]?o
est l'expression la plus courte à laquelle je pouvais penser pour correspondre aux trois homophones.S'il est permis de passer les deux valeurs en tant que tableau de paramètres unique, le paramètre reste peut devenir un paramètre normal, économisant encore 5 octets.
la source
(...a)=>/^(2|t0|t[wo]?o),b(ee?|3)?$/.test(a)
i
drapeau manque.Perl 6,
4544 octetsMerci aux gens d'IRC de m'avoir aidé à jouer au golf
usage
Alternative non concurrente, 54 octets
C'est une bonne alternative à ce qui précède si vous pensez que les regex sont grossières, mais c'est un peu plus long. Il pourrait être joué sur quelques octets de plus, mais comme il n'est pas en compétition, je le laisse tel quel.
la source
[
et]
dénote un groupe non capturant dans une expression régulière, qui serait écrit comme(?:
et)
dans Perl 5. Pour obtenir une classe de caractère, vous devez les placer entre crochets<[
et]>
.Python 2.7, 133 octets
Je ne sais pas si nous sommes censés publier des solutions s'il y a une version plus petite dans les commentaires, mais voici ma version en Python.
Edit: Sans la fonction, ce n'est que 73 octets (et ce n'est même pas près des meilleures réponses. Pardonnez-moi, je suis nouveau
la source
2
(entier)e('oo', '3')
les sous-chaînes similaires .Rubis,
535552 octetsJe vais être honnête, c'est ma première tentative d'essayer de jouer au golf avec un problème.
Appel de fonction sous forme de
f.call(firstValue, secondValue)
0
est Truthy,nil
est Falsy.Testez-le ici
la source
Japt, 36 octets
Peut-être que j'ai raté quelque chose, mais cela devrait fonctionner complètement. Testez-le en ligne!
la source
Pyth, 39 octets
-3 octets par @FryAmtheEggman
Essayez-le ici .
la source
Python,
8583 octets@Manatwork m'a sauvé deux octets.
Ceci est assez brutal, je vais ensuite examiner les solutions d'expression rationnelle.
la source
'2 to too two t0'.split()
Pour le second tableau ne fait aucune différence.'2,to,too,two,t0'.split(',')
. Que je suis bête.PowerShell v3 +,
7470 octetsN'utilise pas l'expression régulière. Prend deux entrées, vérifie si le premier est
-in
le tableau créé dynamiquement par l'-split
opérateur, convertit ce booléen en entier avec+
, puis multiplie cela*
en vérifiant si le second est-in
le deuxième tableau (qui convertira automatiquement le booléen en int ). Cela fonctionne parce quex*y == x&y
six
ety
ne peut être que1
ou0
.Par défaut, PowerShell ne respecte pas la casse, nous l'obtenons donc gratuitement. Sortira
0
ou1
pour falsey / truey, respectivement. Nécessite la version 3 ou plus récente pour l'-in
opérateur.Édition - 4 octets enregistrés en utilisant unaire -split
la source
Groovy, 52 octets
==~
est un opérateur regex cool dans groovy qui vérifie l'égalité.Tests:
Test Regex101 .
la source
x
estt
ety
est0b
?f('t', '0b')
à être faux, mais je crains que votre code ne revienne vrai.MATL , 32
4143octetsMême approche que la réponse Retina de @ DigitalTrauma . Les entrées sont séparées par une virgule. La sortie véridique est une chaîne avec les deux entrées en minuscules; la falsification n'est pas sortie.
Essayez-le en ligne!
la source
C # 6, 132 octets
Version non golfée (seulement un peu plus lisible):
la source
Python 2, 67 octets
Utilise l'expression régulière de Digital Trauma. L'entrée est une chaîne unique séparée par une virgule. Je ne sais pas si ce format est autorisé pour la saisie ...
la source