words строк одинаковой длины из строчных латинских букв.
За один ход в строке можно поменять местами два символа, стоящие на позициях одной чётности: оба на чётных позициях или оба на нечётных (нумерация с нуля). Ходов можно делать сколько угодно.
Назовём две строки родственными, если одну можно превратить в другую такими ходами. Родство разбивает список на классы: строки внутри класса родственны, а строки из разных классов — нет.
Верните количество классов.words=["stop", "pots", "tops", "opts"] → 3
Чётные позиции «stop» — s, o; нечётные — t, p. У «pots» на чётных p, t — набор другой. Классы: {stop}, {pots, tops}, {opts}. «pots» → «tops»: меняем p и t на позициях 0 и 2.
words=["ab", "ba", "ab"] → 2
Буквы в слове из двух символов стоят на позициях разной чётности, их не поменять. Классы: {ab, ab} и {ba}.
words=["abcde", "edcba", "cbade"] → 1
words=["stop", "pots", "tops", "opts"]
3
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 63 теста на сервере, включая скрытые.