রান-লেংথ এনকোডিং কী তা সবাই জানে। এটি ইতিমধ্যে অনেক কোড-গল্ফ চ্যালেঞ্জের বিষয় হয়ে দাঁড়িয়েছে। আমরা একটি নির্দিষ্ট প্রকরণের দিকে তাকিয়ে থাকব।
উদাহরণ
Normal: 11222222222222222222233333111111111112333322
Run-length: 112(19)3(5)1(11)2333322
প্রথমত চিহ্নটি যে বার হয়েছে তার সংখ্যাটি বন্ধনীগুলির সংখ্যা উল্লেখ করে। উদাহরণস্বরূপ, কেবলমাত্র 5 বা ততোধিক অক্ষরের রানগুলি এনকোড করা হয়েছিল। এটি কারণ 4 বা ততোধিকের কম এনকোডিং করা অক্ষরের সংখ্যা বাড়ায় না।
চ্যালেঞ্জ
একটি ফাংশন / প্রোগ্রাম লিখুন যা রান-দৈর্ঘ্যের এনকোডিংয়ের এই প্রকরণটিকে কার্যকর করে, তবে দুটি চিহ্নের রানও এনকোড করতে পারে। দুটি চিহ্নের রানগুলিও প্রথম বন্ধনীতে আবদ্ধ থাকতে হবে। একটি গোষ্ঠী বন্ধনীতেও আবদ্ধ থাকবে। আপনার প্রোগ্রামটিকে অবশ্যই ইনপুট হিসাবে একটি স্ট্রিং গ্রহণ করতে হবে এবং স্ট্রিংকে সংক্ষিপ্ত করে এমন পরিবর্তনগুলির সাথে পরিবর্তিত স্ট্রিং আউটপুট করতে হবে।
উদাহরণ
Normal: 111244411144411144411167676767222222277777222222277777123123123123
Double run-length: 1112((444111)(3))67676767((2(7)7(5))(2))123123123123
মন্তব্য
111
এনকোড করা হয়নি কারণ এটি এনকোডিং (1(3)
) ছোট নয়।- স্ট্রিংটি
444111
3 বার ঘটে তাই এটি এনকোড করা হয়েছে। 676767
এনকোড করা হয়নি কারণ((67)(4))
আগের চেয়ে দীর্ঘ।222222277777222222277777
হিসাবে এনকোড করা হয়নি((222222277777)(2))
। কেন? কারণ222222277777
নিজেই কমে যেতে পারে2(7)7(5)
।123123123123
এনকোড করা হয়নি কারণ আপনার প্রোগ্রামটি তিনটি নয়, দুটি চিহ্নের রান পরিচালনা করার কথা।
এই কোড-গলফতাই সংক্ষিপ্ততম কোড জয়ী। টাই-ব্রেকার তাড়াতাড়ি জমা দেওয়া।
যদি আমি কিছু মিস করি, বা আপনি যদি কিছু সম্পর্কে অনিশ্চিত হন তবে দয়া করে মন্তব্যে আমাকে জানান।
441444144414
-> ((4414)(3))
?
4414
টেকনিক্যালি ৪ এর সিরিজ My আমার কথা বলা ঠিক খারাপ।
111111111
যেমন এনকোড করা (1)(9)
?
67
টি আছে।