Menu
CoddyTech

Longest Palindrome

Otrzymujesz ciąg znaków s złożony z wielkich i małych liter. Ułóż jego litery tak, aby utworzyć jak najdłuższy palindrom, i zwróć jego długość. Możesz ułożyć litery w dowolnej kolejności i pominąć niektóre z nich, ale każdej litery możesz użyć najwyżej tyle razy, ile występuje w s.

Wielkie i małe litery są różnymi literami, więc Aa nie jest palindromem.

Funkcja

longestPalindrome(s: string) → integer
sstring
litery, których możesz używać, wielkie i małe
Zwracainteger
długość najdłuższego palindromu, jaki możesz ułożyć z tych liter

Ograniczenia

  • 1 ≤ s.length ≤ 5 × 104
  • s zawiera tylko angielskie litery: a–z oraz A–Z.
  • Nie musisz używać każdej litery.

Przykłady

Wejście
s = "coddyCode"
Wyjście
5
Wyjaśnienie
o występuje dwa razy, a d trzy razy, pozostałe litery po razie. Para liter o, para liter d i jedna pozostała litera w środku dają długość 5, na przykład doCod.
challenge icon

Pytanie dodatkowe

Czy możesz zwrócić jeden z najdłuższych palindromów wraz z jego długością, nadal w czasie O(n)?

Zresetuj kod
def longestPalindrome(s):
    # Napisz kod tutaj

Test #1

Test #2

Test #3

Argument

s = "coddyCode"

Oczekiwany wynik

5