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