292. Капча

Не решаласьСложная

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

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

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

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

Формат ввода

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

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

captcha = `
  TRABWARH
  THSCAHAW
  WWBSCWAA
  CACACHCR
`

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

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

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

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

[
  `TRABWARH
   THSCAHAW`
   ,
  `WWBSCWAA
   CACACHCR`
]

Примечание

  • Количество дорожных знаков на фотографии всегда больше 1 и не более 10.
  • Каждый фрагмент должен быть прямоугольником.
  • Каждая буква должна целиком принадлежать ровно одному фрагменту.
  • Площадь каждого из получившихся фрагментов должна быть одинаковой, но размеры могут отличаться.
  • В выходном массиве фрагменты должны идти слева направо, сверху вниз. Пример:
captcha = `
  ASWRWTSW
  WHAHWABC
  SAHSSHHS
`

Ответ для примера:

[
  `ASWR`
   ,
  `WTSW`
   ,
  `WH
   SA`
   ,
  `AH
   HS`
   ,
  `WA
   SH`
   ,
  `BC
   HS`
]
  • Если существует несколько способов решения, то при сравнении способов приоритет отдается тому, у которого ширина первого отличающегося фрагмента будет наибольшей.
  • Если решения не существует, надо вернуть пустой массив.

Ограничения

Ограничение времени

10 с

Ограничение памяти

64 МБ

Теги

JavaScript Node.js 12
Нужно войти, чтобы отправить решение.Войти