Яндекс Блиц Фронт 2: Финал #5

Яндекс Блиц Фронт 2: Финал #5


Продолжаем серию задач из конкурса от Яндекса

«Капча»

Представьте, что вы китайский студент, который зарабатывает на жизнь прохождением капчи за деньги. На одном из сайтов вам периодически встречается капча, решение которой занимает много времени. Вы хотите написать робота, чтобы автоматизировать решение задачи.

Капча представляет собой фотографию, которую нужно разделить на прямоугольные фрагменты. У всех фрагментов должна быть одинаковая площадь, но могут быть разные размеры сторон. Каждый фрагмент должен содержать ровно один дорожный знак.

В качестве решения этого задания отправьте файл .js, который экспортирует функцию: 

module.exports = function solveCaptcha(captcha) { 
    // ... 
}

Формат ввода

Ваши коллеги уже предобработали фотографию. Они разбили её по сетке на маленькие квадратные части и для каждой из них определили основной объект.

Фотография попадает к вам в виде строки: 

captcha = ‘ 
  TRABWARH 
  THSCAHAW 
  WWBSCWAA 
  CACACHCR 
‘

Обозначение объектов:

  • S - дорожный знак (sign)
  • T - дерево (tree)
  • R - дорога (road)
  • B - здание (building)
  • С - автомобиль (car)
  • A - животное (animal)
  • W - водоем (water)
  • H - человек (human)

Формат вывода

На выходе должен получиться массив строк:

[ 
  ‘TRABWARH 
   THSCAHAW‘ 
   , 
  ‘WWBSCWAA 
   CACACHCR‘ 
]

Пример 1

Ввод

"TRABWARH\nTHSCAHAW\nWWBSCWAA\nCACACHCR"

Вывод

["TRABWARH\nTHSCAHAW","WWBSCWAA\nCACACHCR"]

Пример 2

Ввод

"CSRARHAR\nCWAHCBSW\nABWBSWBA\nRBSBTABH"

Вывод

["CSRARHAR","CWAHCBSW","ABWBSWBA","RBSBTABH"]

Пример 3

Ввод

"HSRSTBHC\nCAWTRTBT\nWBATSTRA\nTWRBRTRR\nRWTABSHB\nTWCBWBCA"

Вывод

["HS\nCA\nWB\nTW\nRW\nTW","RSTBHC\nWTRTBT","ATSTRA\nRBRTRR","TABSHB\nCBWBCA"]

Пример 4

Ввод

"TSRSBWAC\nASCSWBTC\nTTAHTABC\nAHWTRWWA"

Вывод

[]

Примечания

  • Количество дорожных знаков на фотографии всегда больше 1 и меньше 10.
  • Каждый фрагмент должен быть прямоугольником.
  • Площадь каждого из получившихся фрагментов должна быть одинаковой, но размеры могут отличаться.
  • В выходном массиве фрагменты должны идти сверху вниз и слева направо (относительно левого верхнего угла).
  • Если существует несколько способов решения, то при сравнении способов приоритет отдается тому, у которого ширина первого отличающегося фрагмента будет наибольшей.
  • Если решения не существует, надо вернуть пустой массив.




Report Page