Voyager avec des appareils électroniques est toujours amusant, surtout lorsque vous avez besoin d'un adaptateur pour les charger. Votre défi est de faciliter un peu la planification d'un voyage en vérifiant si une prise donnée sera compatible avec une prise donnée.
Défi
Étant donné un type de prise et un type de prise, renvoyez une valeur qui indique s'ils fonctionneront ensemble ou non.
Tableau de compatibilité
Socket Accepted plugs | Plug Accepting Sockets
A A | A A, B
B A, B | B B
C C | C C, D, E, F, H, J, K, L, N, O
D C, D, E, F | D D
E C, E, F | E D, E, F, H, K, O
F C, E, F | F D, E, F, H, K, O
G G | G G
H C, E, F, H | H H
I I | I I
J C, J | J J
K C, E, F, K | K K
L C, L | L L
M M | M M
N C, N | N N
O C, E, F, O | O O
Les tableaux présentent les mêmes informations, uniquement transposées.
Contribution
L'entrée sera donnée en deux majuscules ou deux minuscules (à votre choix).
Les entrées seront toujours
/[A-O]/
(ou/[a-o]/
), il n'est pas nécessaire de gérer les entrées non valides.Vous pouvez accepter les deux entrées dans n'importe quel ordre (veuillez préciser lesquelles).
L'entrée peut être prise dans n'importe quel format raisonnable (chaîne, stdin, tableau, ...).
Si vous prenez les deux entrées dans une même chaîne, elles ne peuvent pas être séparées par plus d'un caractère et rien ne doit les entourer
De bonnes entrées:
"G,K"
,"EF"
,"a b"
,['l', 'o']
Entrées: Bad
"K l"
,"f(O)(I)"
,[1,5]
Production
La sortie peut être retournée dans n'importe quel format raisonnable .
La sortie doit être soit
truthy
/falsy
soit l'une des 2 valeurs constantesBonnes sorties:
false
/any positive number
,1
/2
,'T'
/'F'
Mauvaises sorties:
an even number
/an odd number
,1
/more than 1
Exemples
En utilisant le format socket
, plug
=> true
/ false
.
A, A => true
I, K => false
O, C => true
C, O => false
E, F => true
F, E => true
Les failles standard ne sont pas autorisées.
C'est du code-golf donc la réponse avec le moins d'octets dans chaque langue l'emporte.
la source
Réponses:
Retina 0.8.2 ,
3029 octetsEssayez-le en ligne! Le lien inclut des cas de test.
la source
Python 3 , 76 octets
Essayez-le en ligne!
Crédits:
la source
lambda s,p:any([s==p,p in"CEF"and s in"DEFHKO",s=="B"<p,s in"JLN"and"C"==p])
pour 76 octets?Python 3 ,
72octets 73 octets70 octetsEssayez-le en ligne!
Edit: Merci à Chas Brown pour avoir coupé du gras!
la source
q=
peut être omis car la fonction est anonyme. De plus, il y a un espace supplémentaire. 70 octets. Essayez-le en ligne.C (gcc) (architecture x86),
7660 octetsUn grand merci à Arnauld pour les changements!
Les arguments sont donnés dans l'ordre (plug, socket).
Essayez-le en ligne!
la source
1<<~-b
.L"\6\0\xdd78\0襰襰"
place de{6,0,56696,0,35184,35184}
Haskell, 67 octets
Les arguments pour fonctionner
#
sont deux caractères, plug first, socket second.Essayez-le en ligne!
la source
JavaScript (Node.js) , 79 octets
Appelé en fonction cari,
f(socket)(plug)
.Essayez-le en ligne! (comprend des cas de test, montrant une matrice de résultats.)
la source
Gelée , 31 octets
Un lien monadique acceptant une liste de caractères
[plug,socket]
qui donne1
si compatible ou0
sinon.Essayez-le en ligne! Ou voir une suite de tests (qui sépare les deux classes).
la source
PHP , 81 octets
Pour l'exécuter:
Exemple:
Ou essayez-le en ligne!
Remarques:
error_reporting=0
option est utilisée pour ne pas générer d'avertissements.Comment?
Chaque fiche est compatible avec la même prise que la sienne. Il existe quatre fiches spéciales (A, C, E, F) qui sont également compatibles avec quelques prises supplémentaires. Quatre variables de chaîne avec le nom des fiches spéciales sont définies pour contenir la liste de leurs prises supplémentaires compatibles.
Il est vérifié si la prise et la prise d'entrée sont identiques ou si la prise est dans la liste des prises compatibles pour cette prise. Cette dernière vérification est effectuée à l'aide des variables variables de PHP .
la source
Javascript ES6,
666564 caractèresPrend en lettres majuscules
p
pour bouchon ets
pour la prise, le rendement falsy (0
) ou truthy (1
,2
,4
, ...,8192
) valeur.Tester:
la source
ERR_CONNECTION_RESET
https
? Les autres liens TIO fonctionnent-ils? J'ai essayé sur mac (chrome et safari) et android et ça marche très bien ...R ,
132 129113 octetsEssayez-le en ligne!
Construit la matrice suivante et extrait
m[S,P]
=> 1 si VRAI, sinon 0.Enregistré 3 octets en compressant les index en utilisant
intToUtf8
et en remplaçant cette fonction par!
. Voir l'historique pour une version plus lisible.16 octets enregistrés grâce à @Giuseppe!
la source
t=
derep
?Pascal (FPC) , 113 octets
Essayez-le en ligne!
Test pour toutes les valeurs
Suivre le
DEFHKO
train ...pos(string1,string2)
vérifie la première occurrence destring1
instring2
et renvoie sa position en elle ou 0 si elle n'existe pas.la source