Menu
CoddyTech

Longest Palindrome

Bạn nhận được một chuỗi s gồm các chữ cái viết hoa và viết thường. Hãy sắp xếp lại các chữ cái để tạo thành chuỗi đối xứng dài nhất có thể, rồi trả về độ dài của chuỗi đó. Bạn có thể sắp xếp các chữ cái theo bất kỳ thứ tự nào và bỏ qua một số chữ cái, nhưng chỉ được dùng mỗi chữ cái tối đa bằng số lần chữ cái đó xuất hiện trong s.

Chữ cái viết hoa và viết thường là các chữ cái khác nhau, nên Aa không phải là chuỗi đối xứng.

Hàm

longestPalindrome(s: string) → integer
sstring
các chữ cái bạn có thể dùng, cả chữ hoa lẫn chữ thường
Trả vềinteger
độ dài của chuỗi đối xứng dài nhất bạn có thể tạo từ những chữ cái đó

Ràng buộc

  • 1 ≤ s.length ≤ 5 × 104
  • s chỉ chứa các chữ cái tiếng Anh, từ a đến z và từ A đến Z.
  • Bạn không cần dùng mọi chữ cái.

Ví dụ

Đầu vào
s = "coddyCode"
Đầu ra
5
Giải thích
o xuất hiện hai lần và d xuất hiện ba lần, các chữ cái còn lại xuất hiện một lần. Một cặp chữ o, một cặp chữ d và một chữ cái còn lại ở giữa tạo thành độ dài 5, ví dụ như doCod.
challenge icon

Câu hỏi mở rộng

Bạn có thể trả về một chuỗi đối xứng dài nhất cùng với độ dài của nó, vẫn trong O(n) thời gian không?

Đặt lại code
def longestPalindrome(s):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

s = "coddyCode"

Đầu ra mong đợi

5