На графике ствола и листа отображаются группы числовых значений в группах, которые определяются всеми, кроме последней цифры. Например, предположим, у нас есть этот набор данных:
0, 2, 12, 13, 13, 15, 16, 20, 29, 43, 49, 101
Мы могли бы получить этот ствол и листовой участок:
0|02
1|23356
2|09
3|
4|39
5|
6|
7|
8|
9|
10|1
Ствол первой строки равен 0, поэтому его «листья» - цифры после |
- представляют значения между 0 включительно и 10 исключающими. Листья на каждом стебле отсортированы. Стебли без листьев (например, 3) все еще появляются на графике. Значение 101 составляет от 100 включительно до 110 исключений, поэтому его основа равна 10 (100 делится на 10).
Ваша задача состоит в том, чтобы проверить, является ли фрагмент текста допустимым сюжетом ствола и листа. Действительный сюжет удовлетворяет этим правилам:
- Имеет ровно одну строку для каждого стебля (т. Е. Группы из 10) в диапазоне данных (включая стебли в середине диапазона без листьев)
- Не имеет стеблей вне диапазона
- Все листья отсортированы по возрастанию вправо
- Все стебли отсортированы по возрастанию вниз
- Имеет только числовые символы (кроме разделителя
|
)
Вам не нужно иметь дело с числами, которые имеют дробные части. Вы можете одобрить или отклонить дополнительные ведущие нули в стеблях, но пустой стебель не допускается. Там будет хотя бы одно значение. Вы можете предполагать только дополнительные пробелы после листьев в каждом ряду. Вы можете использовать начальный и / или завершающий символ новой строки. Все символы будут напечатаны ASCII.
Ваша функция или программа должна вернуть или вывести (на экран или стандартный вывод) истинное значение для правильного графика или ложное значение для недопустимого графика. Вы можете взять ввод из стандартного ввода, из файла, как одну большую строку, как массив строк - все, что наиболее удобно.
Вот несколько тестовых примеров, которые являются действительными графиками (разделенными пустыми строками):
2|00003457
3|35
4|799
5|3
99|3
100|0556
101|
102|
103|8
0|0
Вот несколько тестовых примеров, которые являются недопустимыми графиками, с комментарием справа:
|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
Это код гольф, поэтому выигрывает самый короткий код! Стандартные лазейки запрещены.
4|;5|26;6|7
который имеет первый стержень вне диапазона, но вместо того, чтобы в конце концов, то есть 12|3;13|4559;14|
.
1|2|3
в нем.