Wyzwanie
Program musi zwrócić wszystkie liczby zawarte w grupie (sekwencja oddzielona przecinkami i łącznikami) liczb.
Zasady
s
jest łańcuchem sekwencji;- wszystkie zawarte liczby
s
są dodatnie ; - liczby zawsze będą rosły ;
- liczby nigdy się nie powtórzą
- kiedy odpowiadasz, pokaż wynik dla
s="1,3-5,9,16,18-23"
Przykłady
input(s) outputs
-----------------
1 1
1,2 1,2
1-4 1,2,3,4
1-4,6 1,2,3,4,6
1-4,8-11 1,2,3,4,8,9,10,11
Powodzenia. =)
4-9,1-2
lub1-3,9-6
?Odpowiedzi:
GolfScript (24 znaki)
Na przykład
Właściwie mam cztery 24-znakowe rozwiązania, ale wybrałem to, ponieważ nie ma żadnych znaków alfanumerycznych.
Jak to działa
źródło
-
?Perl
252625$_
to ciąg sekwencjiPrzykładowa sesja:
Dodano 1 znak do liczby znaków dla opcji (dzięki Gareth, ..kinda).
-n
-p
źródło
n
opcji.-M5.010
i-e
-E
golfscript,
4645Mój pierwszy w historii program do pisania golfa zajął kilka godzin.
Możesz spróbować na http://golfscript.apphb.com/
Mój najlepszy rzut na wyjaśnienie tego okrucieństwa:
edycja 1: zmieniłem ostatnie {}% ~ na {} /, również mój opis prawdopodobnie był błędny.
źródło
{
i końcową,}:r;
a także możesz zapisać jeden, zastępując1-
go(
. (Nawiasem mówiąc, IIRC to jedna sztuczka, której również przegapiłem w moim pierwszym programie GolfScript){...}%~
i{...}/
. Jeśli korzystasz z czegoś w dół stosu,integer $
pierwszy jest prostszy, ponieważ nie musisz za każdym razem dostosowywać liczby całkowitej, aby zrekompensować wszystko, co pozostawiasz na stosie.R , 44 bajty
Wypróbuj online!
Przedefiniuj
-
na znaczyseq
(tj.:
), Otaczaj dane wejściowec()
i oceń odpowiednie wyrażenie.źródło
K, 47
Przypadek testowy
źródło
","/:$,/{{x+!1+y-x}. 2#"J"$"-"\:x}'","\:0:0
dla 43 bajtówGalaretka , 9 bajtów
Wypróbuj online!
Diada zasięgu
r
bierze dwa argumenty po obu stronach i tworzy między nimi zakres obejmujący.źródło
J,
5343413938 znakówPobiera dane z klawiatury:
Dane wyjściowe dla żądanego przypadku testowego:
źródło
Wapń , 173 bajtów
To było dość długie i może nie konkurować, ponieważ na końcu jest koniec.
Uruchom online i zobacz rozwinięty tutaj
źródło
Perl (37)
źródło
s="1,3-5,9,16,18-23"
, dziękisay join",",eval<>=~s/-/../gr
na 29 bajtówPython 2.7,
147138 bajtówStosowanie:
Nie najlepszy program ...
źródło
MATLAB, 47 bajtów
Ten fragment odczytuje ciąg znaków z okna poleceń, zastępuje „-” przez „:”, dodaje nawiasy kwadratowe do łańcucha, a następnie ocenia go, dzięki czemu dane wejściowe zostaną rozszerzone do pełnej tablicy liczb.
Przykładowe dane wejściowe:
Przykładowe dane wyjściowe:
Wierzę, że ten wynik jest dozwolony, ponieważ wyzwanie mówi tylko, że powinny być wyświetlane wszystkie liczby w grupie.
źródło
Perl 6 , 36 bajtów
źródło
PowerShell,
7971 bajtówWypróbuj online!
Wewnętrzna część zmienia „1,5-9,12” na format „(1), (5..9), (12)”, który PowerShell rozumie, a następnie wykonuje to za pomocą iex, który tworzy tablicę tablic. Następnie iteruj przez każdy wewnętrzny układ, a następnie połącz ze sobą wszystkie zewnętrzne elementy układu
Pożycza kod z mojego "Help Me Manage My Time" odpowiedź
Stosowanie
-8 bajtów dzięki Veskah
źródło
K (oK) ,
4031 bajtówRozwiązanie
Wypróbuj online!
Wyjaśnienie:
Udało się więcej golfa, dodając wyjaśnienie ...
źródło
Clojure, 110 bajtów
Radzenie sobie z ciągami nie jest zbyt zabawne :(
źródło
Python 2 , 112 bajtów
Dość prosta i bezpośrednia odpowiedź.
Wypróbuj online!
źródło
Ruby
-p
, 33 bajtyWypróbuj online!
źródło
Japt , 12 bajtów
Spróbuj
źródło
c@
z£
?£
zamiast pierwszych 5 bajtów.Python 2 , 90 bajtów
Wypróbuj online!
źródło