- Описание
- Отправленные решения
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 МБ