Czy pamiętasz moją matę odpowiednio pogrupowaną według kolorów ?
Wczoraj patrzyłem na to i zdałem sobie sprawę, że niektóre litery mieszczą się w innych. Przykład: litera P
pasuje do miejsca, w którym się R
znajduje. Oto proste wyzwanie: biorąc pod uwagę dwie litery, zwróć prawdziwą wartość, jeśli jedna z liter pasuje do drugiej (bezpośrednio lub obrócona, ale nie odwrócona), lub wartość falsey, jeśli nie. To znaczy, jeśli dane wejściowe to [P,R]
lub [R,P]
, musisz zwrócić prawdę, ponieważ w obu przypadkach jedna litera mieści się w drugiej. Jeśli dostaniesz [L,U]
, musisz zwrócić falsey, ponieważ żaden nie mieści się w drugim.
Zasady
- Dane wejściowe muszą składać się z dwóch znaków alfanumerycznych z zakresu [0-9A-Z], ponieważ w macie znajdują się również liczby, w dowolnej potrzebnej formie (dwa osobne znaki jako dwa dane wejściowe, lista z dwoma znakami, ciąg znaków z 2 znaki, cokolwiek).
- Wynik musi być spójny (wartości true i falsey muszą być zawsze takie same).
Poniżej znajduje się tabela okuć (zwróć uwagę, że litera zawsze pasuje we właściwe miejsce, na wypadek gdybyś dostał coś takiego
[Y,Y]
jak dane wejściowe):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
Uroczyście przysięgam, że przetestowałem każdy element w macie mojego dziecka. (Wysusza pot z czoła.)
To jest kod-golf , więc może wygrać najkrótszy kod dla każdego języka!
Niektóre przypadki testowe
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
Post w piaskownicy . Proszę wybacz mi, jeśli zauważysz więcej brakujących elementów. Ogromne podziękowania dla Οurous za pomoc w liście wyposażenia.
źródło
1
nie pasujeF
?1
aby zmieścić go w,F
ale nie jest to dozwolone w mojej macie. :-)Odpowiedzi:
Python 2 ,
135130129 bajtów-1 bajt dzięki Lynn
Wypróbuj online!
Python 3 , 143 bajty
Wypróbuj online!
źródło
Siatkówka ,
9392 bajtyWypróbuj online! Edycja: Zapisano 1 bajt dzięki @ovs.
źródło
Czysty ,
276226 bajtówNiejasno golfa. Poleruje jutro.
Wypróbuj online!
źródło
Haskell ,
149145 bajtówWypróbuj online!
źródło
JavaScript
155 153 151149 bajtówMyślę, że działa to we wszystkich przypadkach, 1/0 dla wartości prawda / fałsz.
Wyjaśnienie:
Dziennik zmian:
źródło
c
pasujef
lubf
pasujec
? Wygląda na to, że sprawdzasz tylko jeden przypadek.f
pasujec
includes(f)
zamiastindexOf(f)>=0
zapisać 2 bajty.Julia 0.6 , 139 bajtów
Wypróbuj online!
Zaoszczędzono kilka bajtów, grupując znaki, które pasują do „O”. Ale testowanie odwróconego wejścia zużywa zbyt dużo kodu ...
Wyjaśnienie:
zip(☐)
zamki błyskawiczne odpowiadające pojedynczym literom"OCFILMPV16"
i ciąg pasujących liter..in(☐)
jest stosowany elementarnie, np(in(a,'O'),in(b,"OCFILMPV16"))
all(.in(☐))
Oba muszą zostać znalezione ...|
dla jednegoa,b
lubb,a
...any(map(☐))
dla co najmniej jednego elementu listy spakowanej.źródło
Kotlin ,
147139 bajtówWypróbuj online!
Przykład w Try It Online obejmuje przypadki testowe dla każdej pozytywnej kombinacji i kilka negatywnych.
Nie zoptymalizowałem pliku reg.ex. za dużo, więc może być dłuższy niż to konieczne
EDYCJA: zapisano kilka bajtów na reg.ex.
źródło
C (gcc) , 211 bajtów
Pierwsza próba. Bardzo prosto.
Wypróbuj online!
źródło
PHP , 204 bajty
-147 bajtów, ponieważ cofam się, aby usunąć 2 bajty, aby stwierdzić, że mój kod zawiera kilka błędów i nieużywanych zmiennych! Mój kod jest teraz znacznie krótszy.
Wypróbuj online!
źródło
Rubinowy, 140 bajtów
Prawie to samo co odpowiedź na python 3, ale z innym wykonaniem.
źródło