Код Гольф: распознавать арт-боксы ascii

Придумал это некоторое время назад, выполняя некоторую работу со структурой данных, хотя из этого получился бы хороший гольф-код: учитывая двумерный массив символов, содержащий 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
13
задан 4 revs, 2 users 98% 14 September 2010 в 00:20
поделиться