Jak zapewne wiecie, nie było wiele piękne Jimmy wyzwania niedawno pojawiały się. Podczas tych wyzwań stanąłeś przed wyzwaniem umiejętności akrobatycznych naszego ukochanego przyjaciela. Teraz mamy dla Ciebie inne wyzwanie. Dzisiaj będziesz identyfikować różne typy Jimmys!
Wyjaśnienie
Istnieją trzy odmiany Jimmys: karzeł, akrobata i kulturysta.
This is dwarf Jimmy: o
This is acrobat Jimmy: /o\
This is bodybuilder Jimmy: /-o-\
Ci Jimmys są świetnymi przyjaciółmi i lubią stać na tej samej linii. Twoim zadaniem jest, biorąc pod uwagę scenę Jimmy'ego:
o /o\ o /-o-\/-o-\ o /o\
Wydaj odpowiednio liczbę krasnoludów, akrobatów i kulturystów na linii.
Wyzwanie
Weź udział w dowolnej rozsądnej formie jako scena Jimmy'ego, jak pokazano w powyższym przykładzie.
Łańcuch wejściowy powinien składać się z jednej linii i opcjonalnie zawierać trzy odmiany Jimmys oraz opcjonalne białe znaki.
Ciąg nie musi zawierać wszystkich odmian Jimmy ani białych znaków.
Ciąg nie będzie zawierał żadnych znaków, których nie ma w
o/\ -
.Możliwe jest dowolne połączenie odmian Jimmy'ego. Oznacza to, że ten sam lub inny typ Jimmy'ego może znajdować się obok siebie. Musisz to uwzględnić.
Wiodące i końcowe białe znaki są opcjonalne i w żadnym wypadku nie są wymagane - program powinien uwzględniać ciąg znaków z lub bez początkowych i / lub końcowych białych znaków.
Ciąg powinien zawierać tylko prawidłowe Jimmys i białe znaki. Na przykład
---///---
jest niedozwolony, ponieważ nie jest prawidłową sekwencją Jimmy'ego.
Wyjmij trzy liczby: Liczba krasnoludów, akrobatów i kulturystów w scenie (w odpowiedniej kolejności).
Może to być wyjście do konsoli jako liczby całkowite oddzielone spacjami lub może być wartością zwracaną z funkcji jako pewnego rodzaju kontenera (tj. Typu tablicy).
Dane wyjściowe, niezależnie od formatu, należy zamówić zgodnie z powyższym punktem w górnej części.
Obowiązują standardowe zasady i luki.
Przypadki testowe
/-o-\ /-o-\ o/o\ /-o-\ /-o-\ /-o-\
OUTPUT: 1 1 5
o o /o\ o o o /o\ /o\
OUTPUT: 5 3 0
/-o-\ /-o-\ /-o-\/-o-\ o /o\/o\ /-o-\o /-o-\ /o\/-o-\
OUTPUT: 2 3 7
/-o-\ o /-o-\ o/o\
OUTPUT: 2 1 2
Jeśli chcesz uzyskać więcej przypadków testowych, użyj tego narzędzia, aby wygenerować więcej przypadkowych przypadków testowych.
Punktacja
To jest golf golfowy , więc wygrywa najniższy wynik w bajtach.
Możesz wyświetlić tabelę wyników dla tego postu, rozwijając widżet / fragment kodu poniżej. Aby Twój post znalazł się w rankingu, potrzebujesz nagłówka ( # header text
) z następującymi informacjami:
Nazwa języka (zakończ go przecinkiem
,
lub myślnikiem-
), a następnie ...Liczba bajtów, jako ostatnia liczba wyświetlana w nagłówku.
Na przykład JavaScript (ES6), 72 bytes
jest poprawny, ale Fortran, 143 bytes (8-bit)
jest nieprawidłowy, ponieważ liczba bajtów nie jest ostatnią liczbą w nagłówku (twoja odpowiedź zostanie rozpoznana jako 8 bajtów - nie wykorzystuj tego).
<!-- Run the snippet to see the leaderboard. Report any bugs to @xMikee1 on Github. --> <iframe src="https://ozewski.github.io/ppcg-leaderboard/?id=188391" width="100%" height="100%" style="border:none;">Oops, your browser is too old to view this content! Please upgrade to a newer version of your browser that supports HTML5.</iframe><style>html,body{margin:0;padding:0;height:100%;overflow:hidden}</style>
oo /o\ o o
byłby miłyoo
.Odpowiedzi:
Galaretka (12?) 13 bajtów
Monadyczny link akceptujący listę znaków, który daje listę liczb całkowitych
[ dwarves, acrobats, and body-builders]
(zachowajṚ
bajt, jeśli możemy określić nasze dane wyjściowe)Wypróbuj online!
W jaki sposób?
Wszystkie Jimmys pokazują
o
; wszystkie nie-krasnoludy wykazują/
; wszyscy kulturyści pokazują dwa-
. Policz je, zmniejsz o połowę liczbę-
i wykonaj odejmowanie, aby znaleźć liczby Jimmy'ego:źródło
Python 3.8 (wersja wstępna) , 51 bajtów
Wypróbuj online!
źródło
('o')
bez połączeniac
?s.count
je,c
a następnie zwraca.Python 2 , 50 bajtów
Wypróbuj online!
-10 bajtów poprzez konwersję wyrażenia lambda na pełny program dzięki @xnor (usuwa rzecz zagnieżdżoną z podwójną lambda i zamiast tego używa przypisania)
źródło
PowerShell ,
5955 bajtówWypróbuj online!
Rozwinięty:
źródło
J ,
3625 bajtów-11 bajtów dzięki Cole!
Wypróbuj online!
Oryginalne rozwiązanie
J , 36 bajtów
Wypróbuj online!
Wyjaśnienie:
Przykładowa sesja J :
źródło
Excel jako CSV, 130 bajtów
Wstaw dane wejściowe w spację przed pierwszym
,
, zapisz jako .csv, otwórz w programie Excel. Wyjścia krasnoludków, akrobaci i kulturystówB1
,B2
iB3
odpowiednio.Excel, 244 bajty
źródło
APL (Dyalog Unicode) , 20 bajtów SBCS
Wypróbuj online!
źródło
Kotlin
131130129121117979688 bajtówWypróbuj online!
Edytuj - Wew, mam mniej niż 100! Wątpię, czy mógłbym to bardziej zmniejszyć, ale tylko czas pokaże ...
Edytuj - Rozmawiałem zbyt wcześnie, upuściłem jeszcze jeden bajt, używając listy zamiast łańcucha
Edycja - minus 8 bajtów dzięki AsoLeo sugerującemu użycie funkcji rozszerzenia
źródło
fun String.j(b:Int=count{'-'==it}/2,a:Int=count{'/'==it})=listOf(count{'o'==it}-a,a-b,b)
88 bajtów.Siatkówka ,
3935 bajtówEdycja: -4 bajty dzięki @FryAmTheEggMan
Wypróbuj online!
Wyjaśnienie:
Prosty etap wymiany. Znajduje wszystkie dopasowania wyrażenia regularnego
^((o)|(/o.)|(/-o-.)| )*
(co powinno dać jedno dopasowanie - cały ciąg znaków) i zastępuje je liczbą przechwyceń grup 2, 3 i 4. Oto wyrażenie regularne w podziale:Musimy zacząć od
^
lub koniec danych wejściowych również się liczy. W składni podstawienia Retina$n
odwołuje się do n-tej grupy przechwytywania, a modyfikator#
liczy, ile dopasowań wykonał.źródło
JavaScript, 55 bajtów
Przeszukuje ciąg znaków za pomocą regex dopasowywania wzoru
o
,o-
lubo-\
; inkrementuje odpowiednią liczbę w tablicy, wykorzystując długość każdego dopasowania do ustalenia indeksu.Wypróbuj online!
źródło
Clojure , 78 bajtów
Wypróbuj online!
źródło
Wolfram Language (Mathematica) , 63 bajty
Wypróbuj online!
55 bajtów, jeśli zostanie odrzucony niepotrzebny porządek ...
źródło
Python 3 ,
69666056 bajtów-4 bajty dzięki @Maarten Fabré
Wypróbuj online!
źródło
g=input().count
natychmiastR , 63 bajty
Używa dopasowania Regex, aby znaleźć i policzyć Jimmys.
Wypróbuj online!
źródło
K (oK) , 25 bajtów
Wypróbuj online!
źródło
Perl 5
-p
, 41 bajtówWypróbuj online!
Liczy, ile razy
o
pojawia się bez śledzenia\
lub-
znalezienia krasnoludów i usuwa je z sznurka. Następnie liczy, ile razy/o
pojawia się, aby znaleźć akrobatów i usuwa je z łańcucha. Następnie zlicza liczbęo
pozostałych do ustalenia producentów nadwozia. Wstawia spacje między liczbami i domyślnie wyprowadza wynik.źródło
1*
undef
zamiast tego wyprowadza nic ( )0
.Rubinowy , 50 bajtów
Wypróbuj online!
źródło
SNOBOL4 (CSNOBOL4) , 135 bajtów
Wypróbuj online!
Usuwa
-o
,/o
orazo
z ciągu i zwiększa za każdym razem odpowiednie liczniki. Pozostawia wiele rąk i nóg (/-\
,\
i nic).źródło
Dalej (gforth) , 118 bajtów
Wypróbuj online!
Wyjaśnienie
/
,-
io
znaków-
znaków podzielona przez 2/
znaków minus liczba producentów nadwoziao
znaków minus liczba Acrobat i kulturystówObjaśnienie kodu
źródło
05AB1E , 13 bajtów
Ten może mieć 12 bajtów przez usunięcie
R
dopuszczalnej kolejności wyjściowej[bodybuilder, acrobat, dwarf]
.Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Drobna alternatywa dla bajtów równych:
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło
C (gcc) ,
999896 bajtów-1 bajt dzięki pułapkowi cat
Wypróbuj online!
źródło