Придумал это некоторое время назад, выполняя некоторую работу со структурой данных, хотя это было бы неплохим кодом для гольфа: учитывая двумерный массив символов, содержащий прямоугольники ascii art, создайте список координат и размеров для прямоугольников.
- Подойдет любой тривиально конвертируемый формат ввода или вывода (например: char **, список строк, строки на стандартном вводе; список из четырех целых чисел, структура, фиксированная сумма +/- для размера и т. Д.).
- Точно так же вывод не обязательно должен быть в каком-либо определенном порядке.
- Вам не нужно делать ничего полезного для недопустимого ввода или искаженных прямоугольников, но вы не должны создавать корректно выглядящие координаты для прямоугольника, которого нет во вводе.
- Никакие два действительных прямоугольника не имеют общего
+
(хотя+
может отображаться не только как часть прямоугольника) - Вы можете предположить, что все прямоугольники имеют размер не менее 3x3: на каждой стороне есть
-
или|
.
Примеры:
" "
" +-+ | "
" | | \-"
" +-+ "
(2,1;3,3)
"+--+ +--+"
"| | | |"
"+--+ +--+"
(0,0;4,3), (6,0;4,3)
" +---+ "
"->|...| "
" +---+ "
(2,0;5,3)
"+-+ +--+ +--+"
"| | | | | |"
"+-+ | | + -+"
" | | "
" +--+ +-+ "
" +--+ | "
" +--+ +-+ "
(0,0;3,3), (4,0;4,5) # (2,5;4,2) is fine, but not needed
+
, который является их частью, так что нет. Я собираюсь сказать это до реализации, хотите ли вы обрабатывать вложенные, но это не должно быть слишком сложно разрешить. - person David X   schedule 10.09.2010