A łodygi i liści działka wyświetla wiązka wartości liczbowych w grupach, które są określane przez wszystkich, ale ostatnią cyfrę. Załóżmy na przykład, że mamy ten zestaw danych:
0, 2, 12, 13, 13, 15, 16, 20, 29, 43, 49, 101
Możemy wyprodukować tę łodygę i liść:
0|02
1|23356
2|09
3|
4|39
5|
6|
7|
8|
9|
10|1
Trzon pierwszego rzędu ma wartość 0, więc jego „liście” - cyfry po |
- reprezentują wartości od 0 włącznie do 10 wyłącznie. Liście na każdej łodydze są sortowane. Pędy bez liści (jak 3) wciąż pojawiają się na wykresie. Wartość 101 mieści się w przedziale od 100 włącznie do 110, więc jej rdzeń wynosi 10 (100 podzielone przez 10).
Wyzwanie polega na sprawdzeniu, czy fragment tekstu jest prawidłowym wątkiem łodygi i liścia. Prawidłowy działka spełnia następujące zasady:
- Ma dokładnie jeden wiersz dla każdej łodygi (tj. Grupy o szerokości 10) w zakresie danych (w tym łodygi w środku zakresu bez liści)
- Nie ma łodyg poza zakresem
- Wszystkie liście są posortowane rosnąco po prawej stronie
- Wszystkie łodygi są sortowane rosnąco
- Ma tylko znaki numeryczne (oprócz separatora
|
)
Nie musisz zajmować się liczbami, które mają części ułamkowe. Możesz zatwierdzić lub odrzucić dodatkowe zera wiodące w rdzeniach, ale pusty rdzeń jest niedozwolony. Będzie co najmniej jedna wartość. Możesz zakładać dodatkowe spacje po liściach w każdym rzędzie. Możesz założyć wiodący i / lub końcowy znak nowej linii. Wszystkie znaki będą drukowane ASCII.
Twoja funkcja lub program powinien zwrócić lub wypisać (do ekranu lub standardowego wyjścia) prawdziwą wartość dla prawidłowego wykresu lub wartość fałszowania dla nieprawidłowego wykresu. Możesz pobierać dane ze standardowego wejścia, z pliku, jako jeden duży ciąg, jako tablicę ciągów - cokolwiek jest najwygodniejsze.
Oto kilka przypadków testowych, które są prawidłowymi wykresami (oddzielonymi pustymi wierszami):
2|00003457
3|35
4|799
5|3
99|3
100|0556
101|
102|
103|8
0|0
Oto kilka przypadków testowych, które są nieprawidłowymi wykresami, z komentarzem po prawej stronie:
|0 Blank stem
5|347 Missing a stem (6) in the range
7|9
4| Has a stem (4) outside the range
5|26
6|7
11|432 Leaves aren't sorted correctly
12|9989
5|357 Stems aren't sorted correctly
4|002
6|1
4|5 Duplicate stem
4|6
4|6
5|1
51114 No stem and leaf separator
609
1|2|03 Multiple separators
2|779|
4|8abcdefg9 Invalid characters
5|1,2,3
75 | 4 6 Invalid characters (spaces)
76 | 2 8 8 9
To jest kod golfowy, więc wygrywa najkrótszy kod! Standardowe luki są niedozwolone.
4|;5|26;6|7
który ma pierwszy trzon poza zakresem, ale zamiast tego na końcu, tj 12|3;13|4559;14|
.
1|2|3
.