نفّذ ترميز طول التكرار وفكّ هذا الترميز.
ترميز طول التكرار (RLE) شكل بسيط من ضغط البيانات، وفيه تُستبدل المقاطع المتتالية (عناصر البيانات المتتابعة) بقيمة بيانات واحدة وعدد مراتها.
على سبيل المثال، يمكننا تمثيل الأحرف الـ53 الأصلية بـ13 حرفًا فقط.
"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" -> "12WB12W3B24WB"
يتيح RLE إعادة بناء البيانات الأصلية إعادة تامة من البيانات المضغوطة، وهذا ما يجعله ضغطًا للبيانات بلا فقدان.
"AABCCCDEEEE" -> "2AB3CD4E" -> "AABCCCDEEEE"
لتبسيط الأمر، يمكنك افتراض أن السلسلة النصية غير المرمّزة لن تحتوي إلا على الأحرف من A إلى Z (سواء بأحرف صغيرة أو كبيرة) وعلى المسافات البيضاء. بهذه الطريقة، لن تحتوي البيانات المراد ترميزها على أي أعداد مطلقًا، وستكون الأعداد داخل البيانات المراد فكّ ترميزها دائمًا عدد مرات تكرار الحرف التالي.
يستخدم المخزن المؤقت الخاص بسلسلة الإدخال النصية البايتات من 64 إلى 319 من الذاكرة الخطية.
يمكن تعديل سلسلة الإدخال النصية في مكانها إذا أردت ذلك.
سجّل في Exercism لتتعلّم وتتقن WebAssembly عبر 87 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.