Zadanie
- Weź łańcuch wejściowy oddzielony spacją.
- Posortuj słowa alfabetycznie.
- Wydrukuj je pionowo w 3 kolumnach oddzielonych spacjami.
Wyzwanie
- Wszystkie trzy wysokości kolumn powinny być możliwie równomiernie wyważone.
- Wszystkie trzy kolumny powinny być wyrównane do lewej.
To jest golf golfowy , więc wygrywa najkrótszy kod!
Przykład
Jeśli dane wejściowe to:
"cat caterpillar pie frog elephant pizza",
Dane wyjściowe powinny być:
cat elephant pie
caterpillar frog pizza
Uważaj na przypadki, jeśli dane wejściowe to:
"a b c d e f g"
Powinny być drukowane jako:
a c e
b d f
g
# or
a d f
b e g
c
# and not
a d g
b e
c f
Odpowiedzi:
Łuska ,
2417 bajtówWypróbuj online!
Wyjaśnienie
Było to zaskakująco trudne wyzwanie, ponieważ Huskowi brakuje obecnie wbudowanej funkcji dzielenia listy na określoną liczbę części.
źródło
Galaretka , 6 bajtów
Wypróbuj online!
źródło
a b c d e f g
skrzynką i zrobiłem inne obszerne testy, ponieważ najpierw miałem to uczucie. Aha, a jego skrót pochodzi od wbudowanegoG
(Format as G rid.).Python 3 , 148 bajtów
-6 bajtów dzięki ovs.
Wypróbuj online!
Pracuję nad tym.Wszystko , co próbowałem, powoduje, że wydruk jest przekrzywiony ...źródło
Mathematica, 115 bajtów
spróbuj na piaskownicy wolfram
wklej następujący kod i naciśnij shift + enter
źródło
Perl 5 , 134 + 1 (
-a
) = 135 bajtówWypróbuj online!
źródło
05AB1E , 8 bajtów
Wypróbuj online!
źródło
JavaScript
181175 bajtówźródło
J , 73 bajty
Mogę wyjaśnić ten bałagan później, jeśli ktoś jest zainteresowany.
Wypróbuj online!
źródło
Węgiel drzewny ,
6564 bajtówWypróbuj online! Link jest do pełnej wersji kodu. Zaoszczędź 2 bajty, jeśli nie będę musiał obsługiwać wielkości mniejszej niż 3 słowa. Prawdopodobnie jest to „eval” sortujące, którego powinienem użyć ... Objaśnienie:
Podziel dane wejściowe na spacje.
Posortuj tablicę.
Zapętlić trzy mniej więcej równe wycinki tablicy. (
I1
powinno być¦¹
.)Połącz plasterek z nowymi liniami i wydrukuj go bez przesuwania kursora.
Jeśli plasterek nie jest pusty, przesuń w prawo o jeden więcej niż długość najdłuższego słowa w plasterku.
źródło
358 bajtów zminimalizowanego JS:
źródło
GNU sed , 92 + 1 = 93 bajty
+1 bajty dla
-r
flagi.W ogóle nie grałem w golfa, ale okazało się to o wiele prostsze, niż się spodziewałem.
Wypróbuj online!
źródło
Powłoka Bourne'a, 172 bajty
Bardziej czytelny, jeśli sformatowany konwencjonalnie:
Za cenę skanowania danych wejściowych raz na kolumnę nie używa tablic. Bardziej złożony program awk może otworzyć 3 pliki (jeden na każde N-te słowo), przetwarzając dane wejściowe w jednym przebiegu. Następnie można je połączyć i wydrukować przy użyciu tej samej ostatniej linii.
Zmienna również
N
nie jest bezwzględnie potrzebna; w cenie 4 bajtów oszczędzamy skanowanie wejścia jeszcze 3 razy.źródło