Podróżowanie z elektroniką jest zawsze zabawne, szczególnie gdy potrzebujesz adaptera do ładowania. Twoim wyzwaniem jest ułatwienie planowania podróży poprzez sprawdzenie, czy dana wtyczka będzie kompatybilna z danym gniazdem.
Wyzwanie
Biorąc pod uwagę typ wtyczki i typ gniazda, zwróć wartość wskazującą, czy będą one działać razem, czy nie.
Tabela kompatybilności
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
Tabele pokazują te same informacje, tylko transponowane.
Wejście
Dane wejściowe będą podawane jako dwie wielkie lub dwie małe litery (wybierz).
Wejściami zawsze będą
/[A-O]/
(lub/[a-o]/
), nie ma potrzeby obsługi nieprawidłowych danych wejściowych.Możesz zaakceptować dwa dane wejściowe w dowolnej kolejności (proszę określić, które).
Dane wejściowe można przyjmować w dowolnym rozsądnym formacie (ciąg, standardowe, tablica, ...).
Jeśli weźmiesz oba dane wejściowe w jednym ciągu, można je oddzielić nie więcej niż jednym znakiem i nie może ich otaczać nic
Dobre wejścia:
"G,K"
,"EF"
,"a b"
,['l', 'o']
Bad wejścia:
"K l"
,"f(O)(I)"
,[1,5]
Wynik
Dane wyjściowe można zwrócić w dowolnym rozsądnym formacie .
Wyjście musi być albo
truthy
/falsy
lub jeden z 2 stałychDobre wyniki:
false
/any positive number
,1
/2
,'T'
/'F'
Złe wyjścia:
an even number
/an odd number
,1
/more than 1
Przykłady
Używając formatu socket
, plug
=> true
/ false
.
A, A => true
I, K => false
O, C => true
C, O => false
E, F => true
F, E => true
Standardowe luki są niedozwolone.
To jest golf golfowy, więc wygrywa odpowiedź z najmniejszą liczbą bajtów w każdym języku.
źródło
Odpowiedzi:
Retina 0.8.2 ,
3029 bajtówWypróbuj online! Link zawiera przypadki testowe.
źródło
Python 3 , 76 bajtów
Wypróbuj online!
Kredyty:
źródło
lambda s,p:any([s==p,p in"CEF"and s in"DEFHKO",s=="B"<p,s in"JLN"and"C"==p])
na 76 bajtów?Python 3 ,
72 bajty73 bajty70 bajtówWypróbuj online!
Edycja: Podziękowania dla Chasa Browna za zmniejszenie ilości tłuszczu!
źródło
q=
można pominąć, ponieważ funkcja jest anonimowa. Jest też dodatkowa przestrzeń. 70 bajtów. Wypróbuj online.C (gcc) (architektura x86),
7660 bajtówOgromne podziękowania dla Arnaulda za zmiany!
Argumenty podano w kolejności (wtyczka, gniazdo).
Wypróbuj online!
źródło
1<<~-b
.L"\6\0\xdd78\0襰襰"
zamiast{6,0,56696,0,35184,35184}
Haskell, 67 bajtów
Argumentami do działania
#
są dwa znaki, najpierw wtyczka, drugi gniazdo.Wypróbuj online!
źródło
JavaScript (Node.js) , 79 bajtów
Powoływana jako curry funkcji
f(socket)(plug)
.Wypróbuj online! (obejmuje przypadki testowe przedstawiające macierz wyników).
źródło
Galaretka , 31 bajtów
Monadyczny link akceptujący listę znaków,
[plug,socket]
który daje1
zgodność,0
jeśli nie jest zgodna .Wypróbuj online! Lub zobacz zestaw testowy (który oddziela dwie klasy).
źródło
PHP , 81 bajtów
Aby uruchomić:
Przykład:
Lub wypróbuj online!
Uwagi:
error_reporting=0
opcja nie wyświetla ostrzeżeń.W jaki sposób?
Każda wtyczka jest kompatybilna z tym samym gniazdem co sama. Istnieją cztery specjalne wtyczki (A, C, E, F), które są również kompatybilne z kilkoma innymi gniazdami. Zdefiniowane są cztery zmienne łańcuchowe z nazwą specjalnych wtyczek, które przechowują listę ich dodatkowych kompatybilnych gniazd.
Sprawdzane jest, czy wtyczka wejściowa i gniazdo są takie same lub czy gniazdo znajduje się na liście kompatybilnych gniazd dla tej wtyczki. Ta ostatnia kontrola odbywa się za pomocą zmiennych zmiennych PHP .
źródło
JavaScript ES6,
666564 znakówStaje liter do
p
do wtyczki is
do gniazda wraca falsy (0
) lub truthy (1
,2
,4
, ...,8192
wartości).Test:
źródło
ERR_CONNECTION_RESET
https
? Czy działają inne łącza TIO? Próbowałem na Macu (Chrome i Safari) iR ,
132 129113 bajtówWypróbuj online!
Buduje następującą macierz i wyodrębnia
m[S,P]
=> 1 jeśli PRAWDA, w przeciwnym razie 0.Zaoszczędzono 3 bajty, kompresując indeksy za pomocą
intToUtf8
i zastępując tę funkcję!
. Zobacz historię, aby uzyskać bardziej czytelną wersję.Zaoszczędź 16 bajtów dzięki @Giuseppe!
źródło
t=
sięrep
?Pascal (FPC) , 113 bajtów
Wypróbuj online!
Sprawdź wszystkie wartości
Jadąc
DEFHKO
pociągiem ...pos(string1,string2)
sprawdza pierwsze wystąpieniestring1
instring2
i zwraca swoją pozycję w nim lub 0, jeśli nie istnieje.źródło