Menu
CoddyTech

String Compression

تحصل على سلسلة s تتكوّن من أحرف إنجليزية. اضغطها: استبدل كل تتابع من حرفين متطابقين أو أكثر متتاليين بذلك الحرف متبوعًا بطول التتابع، واترك الحرف الذي يظهر منفردًا كما هو. لذا تصبح aabccc على النحو التالي: a2bc3. أعد السلسلة المضغوطة.

الأحرف الكبيرة والصغيرة مختلفة: aA عبارة عن تتابعين، طول كل منهما 1.

الدالة

compress(s: string) → string
sstring
السلسلة النصية المراد ضغطها، أحرف إنجليزية فقط
تُرجعstring
السلسلة المضغوطة، حيث يُكتب كل تكرار على شكل حرفه متبوعًا بطوله إذا كان الطول أكبر من 1

القيود

  • 1 ≤ s.length ≤ 2 × 104
  • s يحتوي على أحرف إنجليزية فقط، من a إلى z ومن A إلى Z.
  • يُكتب طول التشغيل بالنظام العشري، ويمكن أن يتكوّن من عدة أرقام.

أمثلة

المدخلات
s = "aabccc"
المخرجات
"a2bc3"
الشرح
المقاطع هي aa وb وccc. تصبح a2 وb (لا يُضاف عدد إلى الحرف المنفرد) وc3.
challenge icon

سؤال إضافي

اكتب العملية العكسية: انطلاقًا من سلسلة مضغوطة مثل ab12، أعد بناء السلسلة الأصلية. كيف تقرأ عددًا يتكوّن من عدة أرقام؟

إعادة ضبط الشيفرة
def compress(s):
    # اكتب الكود هنا

اختبار #1

اختبار #2

اختبار #3

وسيط

s = "aabccc"

الإخراج المتوقع

"a2bc3"