Vous souvenez-vous de mon tapis correctement groupé par couleurs ?
Hier, je l'ai regardé et j'ai réalisé que certaines lettres se glissaient à l'intérieur des autres. Exemple: une lettre P
tient à l'endroit où elle R
va. Voici donc un défi simple: étant donné deux lettres, renvoyez une valeur vraie si l'une des lettres s'inscrit dans l'autre (directement ou pivotée, mais pas retournée), ou une valeur de falsey si elles ne le font pas. Autrement dit, si l'entrée est [P,R]
ou [R,P]
, vous devez retourner véridique car dans les deux cas, une lettre s'inscrit dans l'autre. Si vous obtenez, [L,U]
vous devez retourner falsey car aucun ne rentre dans l'autre.
Règles
- L'entrée doit être composée de deux caractères alphanumériques dans la plage [0-9A-Z], car il y a également des nombres dans le mat, sous toutes les formes dont vous avez besoin (deux caractères séparés comme deux entrées, une liste avec deux caractères, une chaîne avec le 2 caractères, peu importe).
- La sortie doit être cohérente (les valeurs de vérité et de falsey doivent toujours être les mêmes).
Voici le tableau des raccords (notez qu'une lettre tient toujours à sa place, juste au cas où vous obtiendrez quelque chose comme
[Y,Y]
en entrée):char fits inside chars -------------------------------------------------------- C G,O F B,E,P,R G O I 0,1,7,B,D,E,F,H,K,L,M,N,O,P,R,T,V,W,X,Z L E M W P R S O V A W M 0 O 1 B,E,L 3 O 6 9,O 8 O 9 6,O
Je jure solennellement d'avoir testé chaque essayage du tapis de mon enfant. (Sèche sa sueur de son front.)
C'est du code-golf , alors le code le plus court pour chaque langue peut gagner!
Quelques cas de test
input output
-------------
[C,G] truthy (C fits inside G)
[G,C] truthy (C fits inside G)
[F,R] truthy (F fits inside R)
[M,W] truthy (both fit inside the other)
[O,S] truthy (S fits inside O)
[T,T] truthy (T fits in its place)
[E,V] falsey (no fit found)
[P,L] falsey
Poteau de bac à sable . S'il vous plaît, pardonnez-moi si vous repérez plus d'accessoires que j'ai ratés. Un grand merci à Οurous pour m'avoir aidé avec la liste des raccords.
la source
1
ne rentre pasF
?1
pour l'adapter auF
mais ce n'est pas autorisé dans mon tapis. :-)Réponses:
Python 2 ,
135130129 octets-1 octet grâce à Lynn
Essayez-le en ligne!
Python 3 , 143 octets
Essayez-le en ligne!
la source
Rétine ,
9392 octetsEssayez-le en ligne! Edit: 1 octet enregistré grâce à @ovs.
la source
Nettoyer ,
276226 octetsVaguement golf-ish. Polira demain.
Essayez-le en ligne!
la source
Haskell ,
149145 octetsEssayez-le en ligne!
la source
Javascript
155 153 151149 octetsJe pense que cela fonctionne sur tous les cas, 1/0 pour vrai / faux.
Explication:
Journal des modifications:
la source
c
crisesf
ou desf
crisesc
? Il semble que vous ne cochez qu'un seul cas.f
ajustéc
includes(f)
au lieu deindexOf(f)>=0
pour enregistrer 2 octets.Julia 0,6 , 139 octets
Essayez-le en ligne!
Enregistré quelques octets en regroupant les caractères qui correspondent à «O». Mais tester l'entrée inversée utilise trop de code ...
Explication:
zip(☐)
zippe les lettres simples correspondantes de"OCFILMPV16"
& une chaîne de lettres correspondantes..in(☐)
est appliqué par élément, par exemple(in(a,'O'),in(b,"OCFILMPV16"))
all(.in(☐))
Les deux doivent être trouvés ...|
pour oua,b
oub,a
...any(map(☐))
pour au moins un élément de la liste zippée.la source
Kotlin ,
147139 octetsEssayez-le en ligne!
L'exemple sur Try It Online comprend des cas de test pour chaque combinaison positive et quelques négatifs.
Je n'ai pas optimisé le reg.ex. trop, donc cela pourrait être plus long que nécessaire
EDIT: enregistré quelques octets sur reg.ex.
la source
C (gcc) , 211 octets
Une première tentative. Très simple.
Essayez-le en ligne!
la source
PHP , 204 octets
-147 octets car je reviens en arrière pour supprimer 2 octets seulement pour constater que mon code avait quelques bugs et des variables inutilisées! Mon code est maintenant beaucoup plus court.
Essayez-le en ligne!
la source
Rubis, 140 octets
À peu près la même que la réponse python 3, mais avec une exécution différente.
la source