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