n вершин с номерами от 0 до n - 1 и корнем в вершине 0. Оно задано массивом parent: parent[i] — родитель вершины i, а parent[0] = -1. Кроме того, у каждой вершины есть буква: labels[i].
Все вершины, кроме корня, одновременно пересаживаются: вершина x ищет среди своих предков (в исходном дереве) ближайшего с той же буквой, что у неё самой. Если такой предок найден, x вместе со всем своим поддеревом становится его ребёнком; если нет — остаётся на месте.
Верните массив, где i-й элемент — число вершин в поддереве вершины i в получившемся дереве (включая саму i).parent=[-1, 0, 1, 2], labels="abab" → [4, 2, 1, 1]
Вершина 2 (буква a) переезжает к ближайшему предку с той же буквой — к корню 0. Вершина 3 (буква b) переезжает к вершине 1. Теперь у корня дети 1 и 2, у вершины 1 — ребёнок 3.
parent=[-1, 0, 0], labels="xyz" → [3, 1, 1]
Все буквы разные, никто никуда не переезжает.
parent задаёт корректное дерево с корнем 0labels состоит из строчных латинских буквparent=[-1, 0, 1, 2], labels="abab"
[4, 2, 1, 1]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 26 тестов на сервере, включая скрытые.