Menu
CoddyTech

Longest Palindrome

Дана строка s, состоящая из заглавных и строчных букв. Переставьте её буквы, чтобы составить самый длинный возможный палиндром, и верните длину этого палиндрома. Вы можете расположить буквы в любом порядке и пропустить некоторые из них, но каждую букву можно использовать не больше раз, чем она встречается в s.

Заглавные и строчные буквы считаются разными, поэтому Aa — не палиндром.

Функция

longestPalindrome(s: string) → integer
sstring
буквы, которые вы можете использовать, в верхнем и нижнем регистре
Возвращаетinteger
длина самого длинного палиндрома, который можно составить из этих букв

Ограничения

  • 1 ≤ s.length ≤ 5 × 104
  • s содержит только английские буквы: от a до z и от A до Z.
  • Необязательно использовать все буквы.

Примеры

Ввод
s = "coddyCode"
Вывод
5
Пояснение
o встречается дважды, а d — три раза, остальные буквы — по одному разу. Пара букв o, пара букв d и одна оставшаяся буква посередине дают длину 5, например doCod.
challenge icon

Дополнительный вопрос

Можете ли вы вернуть самую длинную палиндромную подстроку вместе с её длиной, по-прежнему за время O(n)?

Сбросить код
def longestPalindrome(s):
    # Напишите код здесь

Тест #1

Тест #2

Тест #3

Аргумент

s = "coddyCode"

Ожидаемый вывод

5