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

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

মধ্যম

নির্দেশনা

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

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

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

"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"  ->  "12WB12W3B24WB"

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

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

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


সূত্র

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

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

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