Reisen mit Elektronik macht immer Spaß, besonders wenn Sie einen Adapter zum Aufladen benötigen. Ihre Herausforderung besteht darin, die Reiseplanung zu vereinfachen, indem Sie prüfen, ob ein bestimmter Stecker mit einer bestimmten Steckdose kompatibel ist.
Herausforderung
Geben Sie bei einem Steckertyp und einem Buchsentyp einen Wert zurück, der angibt, ob sie zusammenarbeiten oder nicht.
Kompatibilitätstabelle
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
Die Tabellen zeigen die gleichen Informationen, nur transponiert.
Eingang
Die Eingabe erfolgt in zwei Groß- oder Kleinbuchstaben (Sie wählen).
Eingaben werden immer
/[A-O]/
(oder/[a-o]/
) sein, ungültige Eingaben müssen nicht behandelt werden.Sie können die beiden Eingaben in beliebiger Reihenfolge akzeptieren (bitte angeben, welche).
Die Eingabe kann in jedem vernünftigen Format erfolgen (String, Stdin, Array, ...).
Wenn Sie beide Eingaben in einer einzigen Zeichenfolge verwenden, dürfen sie nicht mehr als ein Zeichen voneinander entfernt sein und dürfen von nichts umgeben sein
Gute Eingänge:
"G,K"
,"EF"
,"a b"
,['l', 'o']
Bad Eingänge:
"K l"
,"f(O)(I)"
,[1,5]
Ausgabe
Die Ausgabe kann in jedem vernünftigen Format erfolgen .
Die Ausgabe muss entweder
truthy
/falsy
oder einen von 2 konstanten Werten habenGute Ergebnisse:
false
/any positive number
,1
/2
,'T'
/'F'
Schlechte Ausgänge:
an even number
/an odd number
,1
/more than 1
Beispiele
Mit dem Format socket
, plug
=> true
/ false
.
A, A => true
I, K => false
O, C => true
C, O => false
E, F => true
F, E => true
Standardlücken sind nicht zulässig.
Das ist Code-Golf, also gewinnt die Antwort mit den wenigsten Bytes in jeder Sprache.
quelle
Antworten:
Retina 0.8.2 ,
3029 BytesProbieren Sie es online! Link enthält Testfälle.
quelle
Python 3 , 76 Bytes
Probieren Sie es online!
Credits:
quelle
lambda s,p:any([s==p,p in"CEF"and s in"DEFHKO",s=="B"<p,s in"JLN"and"C"==p])
für 76 Bytes?Python 3 ,
72 Bytes73 Bytes70 BytesProbieren Sie es online!
Edit: Danke an Chas Brown für das Schneiden von Fett!
quelle
q=
kann weggelassen werden, da die Funktion anonym ist. Es gibt auch einen zusätzlichen Platz. 70 Bytes. Probieren Sie es online aus.C (gcc) (x86-Architektur),
76 bis60 ByteVielen Dank an Arnauld für die Änderungen!
Die Argumente werden in der Reihenfolge (Stecker, Buchse) angegeben.
Probieren Sie es online!
quelle
1<<~-b
.L"\6\0\xdd78\0襰襰"
anstelle von{6,0,56696,0,35184,35184}
Haskell, 67 Bytes
Argumente für die Funktion
#
sind zwei Zeichen, plug first und socket second.Probieren Sie es online!
quelle
JavaScript (Node.js) , 79 Byte
Wird als Curry-Funktion aufgerufen
f(socket)(plug)
.Probieren Sie es online! (Beinhaltet Testfälle mit einer Ergebnismatrix.)
quelle
Gelee , 31 Bytes
Ein monadischer Link, der eine Liste von Zeichen akzeptiert,
[plug,socket]
die anzeigt,1
ob sie kompatibel sind oder0
nicht.Probieren Sie es online! Oder sehen Sie sich eine Testsuite an (die die beiden Klassen voneinander trennt).
quelle
PHP , 81 Bytes
Um es auszuführen:
Beispiel:
Oder versuchen Sie es online!
Anmerkungen:
error_reporting=0
Option verwendet, um keine Warnungen auszugeben.Wie?
Jeder Stecker ist mit derselben Steckdose kompatibel wie er. Es gibt vier Spezialstecker (A, C, E, F), die auch mit einigen weiteren Buchsen kompatibel sind. Vier Stringvariablen mit dem Namen der Spezialstecker sind definiert, um die Liste ihrer zusätzlichen kompatiblen Buchsen aufzunehmen.
Es wird geprüft, ob Eingangsstecker und -buchse identisch sind oder ob sich die Buchse in der Liste der kompatiblen Buchsen für diesen Stecker befindet. Die letztere Prüfung erfolgt mit Hilfe der variablen Variablen von PHP .
quelle
Javascript ES6,
666564 ZeichenNimmt in Großbuchstaben
p
für Stecker unds
für die Buchse, kehrt falsy (0
) oder truthy (1
,2
,4
, ...,8192
) Wert.Prüfung:
quelle
ERR_CONNECTION_RESET
https
? Funktionieren andere TIO-Links? Ich habe es auf einem Mac (Chrome und Safari) und Android versucht und es funktioniert gut ...R ,
132 129113 BytesProbieren Sie es online!
Erstellt die folgende Matrix und extrahiert
m[S,P]
=> 1, wenn TRUE, sonst 0.3 Byte durch Komprimieren von Indizes mit
intToUtf8
und Ersetzen dieser Funktion durch gespeichert!
. Weitere Informationen finden Sie unter Verlauf.16 Bytes gespart dank @Giuseppe!
quelle
t=
inrep
?Pascal (FPC) , 113 Bytes
Probieren Sie es online!
Auf alle Werte prüfen
Dem
DEFHKO
Zug folgen ...pos(string1,string2)
prüft auf erstes Auftreten vonstring1
instring2
und gibt seine Position darin oder 0 zurück, wenn es nicht existiert.quelle