Powiązane: Sprawdź poprawność wykresu łodyg i liści
Wejście
Niepusta lista dodatnich liczb całkowitych. W razie potrzeby można je traktować jako ciągi znaków. Nie możesz założyć, że jest posortowane.
Wynik
Macierzystych i liści działka z numerów. W w tym macierzystych i liścia działki, numery są uporządkowane w łodygach przez dziesiątki, wszystkie numery, które pasują do tej łodygi mają ich ci, wartość przypisywana do łodygi, a następnie wszyscy są klasyfikowane. W tym wyzwaniu nowe linie oddzielają łodygi, a spacje oddzielają łodygi od liści.
Możesz włączyć lub wyłączyć wszystkie puste łodygi znajdujące się między niepustymi łodygami.
Przypadki testowe
(listy mogą być pobierane z domyślnej listy twojego języka, użyłem JSON poniżej)
W tym puste łodygi:
[1, 2, 3, 3, 3, 3, 3, 10, 15, 15, 18, 1, 100]
0 11233333
1 0558
2
3
4
5
6
7
8
9
10 0
[55, 59, 49, 43, 58, 59, 54, 44, 49, 51, 44, 40, 50, 59, 59, 59]
4 034499
5 0145899999
[10000, 10100]
1000 0
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010 0
Z wyłączeniem pustych łodyg:
[1, 2, 3, 3, 3, 3, 3, 10, 15, 15, 18, 1, 100]
0 11233333
1 0558
10 0
[55, 59, 49, 43, 58, 59, 54, 44, 49, 51, 44, 40, 50, 59, 59, 59]
4 034499
5 0145899999
[10000, 10100]
1000 0
1010 0
Odpowiedzi:
R , 12 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
stem
że wystarczyłoby, ponieważ pobiera tablicę jako dane wejściowe.stem
:)Galaretka , 17 bajtów
Wypróbuj online!
źródło
Python 2 ,
787579 bajtówWypróbuj online!
źródło
Siatkówka ,
3830 bajtówPodziękowania dla Neila za uratowanie 2 bajtów i Leo za uratowanie kolejnych 6.
Liczba bajtów zakłada kodowanie ISO 8859-1.
Dane wejściowe to lista liczb całkowitych oddzielonych od linii. Dane wyjściowe pomijają puste prefiksy.
Wypróbuj online!
źródło
(?<=(\b.+ ).)¶\1
oszczędza dwa bajty.JavaScript (ES6), 89 bajtów
źródło
Python 2 ,
1461401331241201181091079086849182817063 bajty-6 bajtów dzięki Rod. -9 bajtów dzięki ovs.
Wypróbuj online!
Okej, coś jest trochę dziwne. Jak wszyscy programiści Python powinni wiedzieć, dyktaty są nieuporządkowane, co oznacza, że pierwotna kolejność par klucz-wartość nie jest zachowana. Jednak w moim bieżącym kodzie wcale nie sortuję powstałego dykta. Jednak wielokrotnie testowałem, sprawdzając równość i porządek za każdym razem, a dykt zawsze wychodzi dobrze. Jeśli ktoś zaprzeczy, że to zawsze wychodzi dobrze lub wie, dlaczego to działa, chciałbym wiedzieć.
Dane wejściowe jako lista python i dane wyjściowe jako dykt. Przykład:
Wejście:
Wynik:
źródło
r[i/10]=r.get(i/10,'')+`i%10`
dla 82 bajtówMathematica, 103 bajty
Kod pochodzi z usuniętej odpowiedzi @ user202729
źródło
> <> , 84 bajtów
Wypróbuj online lub na placu zabaw dla ryb !
Zakłada, że liczby wejściowe są już na stosie .
Objaśnienie: Najpierw sortujemy stos za pomocą sortowania bąbelkowego , używając tego fragmentu kodu:
Następnie obliczamy iloraz liczby całkowitej pierwszej rzeczy na stosie za pomocą 10
::a%-a,
, umieszczamy ją w rejestrze i przechodzimy przez stos, drukując ostatnie cyfry liczb, aż ich pierwsze cyfry nie będą takie same jak rejestr, następnie zwiększanie rejestru i kontynuowanie. Gdy dotrzemy do końca listy oznaczonej symbolem0
, zatrzymujemy się.źródło
PostgreSQL, 53 bajty
Lista liczb całkowitych musi znajdować się w
integer
kolumnien
istniejącej tabelit
. Wynikiem jest tabela dwukolumnowa: każdy wiersz składa się z kolumny „łodygi” i kolumny „liści”. Kolumna „liście” ma format tablicy JSON. (Jak zauważono w komentarzach, nie jest konieczne stosowanie dokładnie formatu pokazanego w „Przypadkach testowych”).Chociaż kolejność rdzeni nie jest gwarantowana (aby zaoszczędzić 10 bajtów,
ORDER BY 1
jest pomijana na końcu zapytania), w moich testach wydaje się, że kończyły się we właściwej kolejności.Zobacz wynik na SQL Fiddle
źródło