Zostałeś wybrany do stworzenia programu, który tworzy ładne wykresy słupkowe ASCII . Oto format wejściowy:
[List of words (they can have spaces)] [an integer >= 0]
Bar 3
This is so cool 4
IDK-Why 6
Dane wejściowe będą miały wiele wierszy w tym formacie, z których każdy reprezentuje jeden pasek na wykresie. Format wyjściowy wykresu będzie taki:
_ _ _ _
|_|_|_|_|
| | | |
| | | + [name of 4th bar]
| | + [name of 3rd bar]
| + [name of 2nd bar]
+ [name of 1st bar]
Oto kilka przykładów:
In:
Cool 4
Kool 6
Out:
_
| |
_| |
| | |
| | |
| | |
|_|_|
| |
| + Kool
+ Cool
In:
Graph 5
Bar 3
Out:
_
| |
| |_
| | |
| | |
|_|_|
| |
| + Bar
+ Graph
In:
Very 4
Large 5
Bar 3
Graph 5
Out:
_ _
_| | | |
| | |_| |
| | | | |
| | | | |
|_|_|_|_|
| | | |
| | | + Graph
| | + Bar
| + Large
+ Very
In:
Bars can be 0 0
Large-bars_are$nice2 6
average)(@#$ 3
neato 5
Out:
_
| | _
| | | |
| |_| |
| | | |
| | | |
_|_|_|_|
| | | |
| | | + neato
| | + average)(@#$
| + Large-bars_are$nice2
+ Bars can be 0
Funkcje lub pełne programy są dozwolone.
Odpowiedzi:
sh + awk + tac, 173
Głównie
awk
skrypt, który drukuje wykres od dołu do góry, a następnie jest odwracanytac
.Opis
awk, pierwsza część, wykonywana dla każdej linii wejściowej
Wydajność
awk, druga część, wykonana raz na końcu
bez golfa:
Wydajność
tac odwraca linie
źródło
JavaScript (ES6), 270
262 270 287Naprawiono błąd, dodając brakujący wiersz „|” pod kratami
Testuj Test w przeglądarce Firefox, ponieważ Chrome nie obsługuje przypisania Destrukturyzacji ES6
źródło
i.match(/.+ |./g)
. Może to się przyda?destructuring assignment
: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Wypróbuj lepszą przeglądarkę, np. Firefox421 bajtów - Python 2
Testy
źródło
a 0 b 3
) I schodzących słupków (npa 5 b 3 c 0
.). Moja wersja Python to Python 2.7.10.Java, 613 dla funkcji drukowania
Możliwe jest zaoszczędzenie kilku bajtów dzięki „zwykłym” przekształceniom
for(i=0;i<n;i++)
nafor(;i++<n;)
, upraszczając trójkowe warunki warunkowe lub bardziej eleganckie obliczenia „etykiet” i „wysokości”, ale to dopiero początek.źródło
Haskell, 323 bajty
Przykład użycia:
Jak to działa (ogólny przegląd, szczegóły może później):
Część parsująca (
(p,q)<-unlines...
) zajmuje dużo bajtów, być może mogę zagrać w golfa dalej.źródło
Python 2, 345 bajtów
źródło