Ctrl K

Самый частый цвет на пути

Сложная
Есть ориентированный граф из n вершин, пронумерованных от 0 до n - 1. Каждая вершина покрашена: цвет вершины i — это буква colors[i]. Рёбра заданы списком links, где links[j] = [a, b] — ребро из a в b. Путь — это последовательность вершин, в которой из каждой вершины в следующую ведёт ребро (путь может состоять из одной вершины). Ценность пути — сколько раз на нём встречается самый частый цвет. Верните наибольшую ценность среди всех путей графа. Если в графе есть цикл, верните -1.
Пример 1
colors="rgrbr", links=[[0, 1], [1, 2], [0, 3], [3, 2], [2, 4]] → 3

Путь 0 → 1 → 2 → 4 проходит через три вершины цвета r (0, 2 и 4). Больше трёх одинаковых цветов не набрать ни на одном пути.

Пример 2
colors="xyx", links=[[0, 1], [1, 2], [2, 1]] → -1

Вершины 1 и 2 образуют цикл, поэтому ответ -1.

Пример 3
colors="qq", links=[] → 1
Ограничения
  • n == len(colors)
  • 1 ≤ n ≤ 10⁵
  • 0 ≤ len(links) ≤ 10⁵
  • colors состоит из строчных латинских букв
  • 0 ≤ a, b < n
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый длинный подъём по карте СложнаяВор и охранник СложнаяМышь, кот и сыр СложнаяПрогулки только в гору СложнаяВсе способы расставить пробелы Сложная
загружаем Python…
Вход
colors="rgrbr", links=[[0, 1], [1, 2], [0, 3], [3, 2], [2, 4]]
Ожидается
3

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 87 тестов на сервере, включая скрытые.