ضغط السلسلة النصية باستخدام قاعدة المجموعات المتتالية

Rust Hard strings

مهمة «ضغط السلسلة النصية باستخدام قاعدة المجموعات المتتالية»

بالنظر إلى سلسلة مكونة من أحرف لاتينية صغيرة. من الضروري تنفيذ خوارزمية ضغط السلسلة: إذا ظهرت مجموعة من الأحرف المتطابقة بطول أكبر من 1 في السلسلة، يتم استبدال هذه المجموعة بالحرف وعدد التكرارات (يُكتب الرقم بدون أصفار بادئة). إذا كانت المجموعة تتكون من حرف واحد، فإنها تبقى دون تغيير. أخرج السلسلة المضغوطة الناتجة. طول السلسلة الأصلية لا يتجاوز 10^5.

تنسيق الإدخال

المدخل هو سلسلة نصية واحدة S، تتكون من أحرف لاتينية صغيرة (a-z). طول السلسلة يتراوح من 1 إلى 10^5.

تنسيق الإخراج

أخرج سطرًا واحدًا — النسخة المضغوطة من السلسلة النصية الأصلية.

أمثلة

مثال 1

الإدخال
abc
الإخراج
abc

مثال 2

الإدخال
aabbaa
الإخراج
a2b2a2

مثال 3

الإدخال
97 98 99 97 98 99
الإخراج
97 98 92 97 98 92
main.rs