ট্র্যাক
/
WebAssembly
WebAssembly
/
অনুশীলনী
/
রান-লেংথ এনকোডিং
রান-লেংথ এনকোডিং

রান-লেংথ এনকোডিং

কঠিন

নির্দেশনা

রান-লেংথ এনকোডিং ও ডিকোডিং তৈরি করুন।

রান-লেংথ এনকোডিং (RLE) ডেটা কম্প্রেশনের একটি সরল রূপ, যেখানে রান (পরপর থাকা ডেটা এলিমেন্ট) কেবল একটি ডেটা মান ও একটি গণনায় প্রতিস্থাপিত হয়।

উদাহরণস্বরূপ, মূল ৫৩টি ক্যারেক্টারকে আমরা মাত্র ১৩টি দিয়ে প্রকাশ করতে পারি।

"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"  ->  "12WB12W3B24WB"

RLE-এর সাহায্যে কম্প্রেস করা ডেটা থেকে মূল ডেটা নিখুঁতভাবে পুনর্গঠন করা যায়, আর এ কারণেই এটি একটি লসলেস ডেটা কম্প্রেশন।

"AABCCCDEEEE"  ->  "2AB3CD4E"  ->  "AABCCCDEEEE"

সরলতার জন্য ধরে নিতে পারেন, এনকোড না করা স্ট্রিংয়ে শুধু A থেকে Z পর্যন্ত অক্ষর (ছোট বা বড় হাতের) আর হোয়াইটস্পেস থাকবে। এভাবে এনকোড করার ডেটায় কখনোই কোনো সংখ্যা থাকবে না, আর ডিকোড করার ডেটার ভেতরে থাকা সংখ্যাগুলো সবসময় পরের ক্যারেক্টারটি কতবার এসেছে সেটিই বোঝায়।

এই ট্র্যাকের নির্দিষ্ট নির্দেশনা

ইনপুট স্ট্রিংয়ের বাফারটি লিনিয়ার মেমোরির 64-319 বাইট ব্যবহার করে।

চাইলে ইনপুট স্ট্রিংটি একই জায়গাতেই পরিবর্তন করা যায়।


সূত্র

Wikipediaলিংকটি নতুন উইন্ডো বা ট্যাবে খোলে
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
WebAssembly Exercism

রান-লেংথ এনকোডিং শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, WebAssembly ট্র্যাকের 87টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।