Ctrl K

Палиндром из двухбуквенных карточек

Средняя
На каждой карточке из массива cards написаны две строчные латинские буквы. Выберите некоторые карточки (каждую не больше одного раза) и выложите их в ряд в любом порядке так, чтобы получившаяся строка была палиндромом — читалась одинаково слева направо и справа налево. Верните наибольшую возможную длину такой строки. Если не получается составить ни одного палиндрома, верните 0.
Пример 1
cards=["ok", "mm", "ko", "ok"] → 6

"ok" + "mm" + "ko" = "okmmko", длина 6. Вторая карточка "ok" пары не находит.

Пример 2
cards=["zz", "zz", "zz", "ab"] → 6

Все три "zz" подряд: "zzzzzz", длина 6. Карточку "ab" использовать не получится.

Пример 3
cards=["pq", "rs"] → 0

Ни одна карточка сама не палиндром и зеркальной пары нет — ответ 0.

Ограничения
  • 1 ≤ len(cards) ≤ 10⁵
  • len(cards[i]) = 2
  • cards[i] состоит из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПалиндромы из общих букв СредняяЗадания с перерывом на остывание СредняяСамые частые запросы СредняяБез одинаковых соседей СредняяСводка заходов по доменам Средняя
загружаем Python…
Вход
cards=["ok", "mm", "ko", "ok"]
Ожидается
6

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