এই চ্যালেঞ্জে আপনাকে ইনপুট হিসাবে বর্ণানুক্রমিক স্ট্রিং দেওয়া হবে। আমরা প্রদত্ত ইনপুটটির "অ্যান্টি-স্ট্রিং" সংজ্ঞায়িত করব সমস্ত অক্ষরের বিপরীতে স্ট্রিং হতে। উদাহরণ স্বরূপ
AaBbbUy -> aAbBBuY
আপনার এমন একটি প্রোগ্রাম লিখতে হবে যা স্ট্রিংটিকে ইনপুট হিসাবে গ্রহণ করে এবং দীর্ঘতম মিলিত সাবস্ট্রিংয়ের সন্ধান করে যার অ্যান্টি-স্ট্রিংটিও একটি সংলগ্ন সাবস্ট্রিং। দুটি সাবস্ট্রিংগুলি ওভারল্যাপ করা উচিত নয়।
উদাহরণস্বরূপ যদি আপনাকে স্ট্রিং দেওয়া হয়
fAbbAcGfaBBagF
গা bold় অংশগুলি দীর্ঘতম স্ট্রিং এন্টি-স্ট্রিং জোড়া হবে।
আপনার প্রোগ্রামটি একবার জুটিটি খুঁজে পেয়েছে, একে একে প্রতিটি চরিত্রের মধ্যে ভেঙে ফেলা উচিত। প্রতিটি স্ট্রিংয়ের প্রথম অক্ষর বাদে সমস্ত অপসারণ করে এটি করা উচিত। উদাহরণস্বরূপ উপরের স্ট্রিং
fAbbAcGfaBBagF
হবে
fAcGfagF
দীর্ঘতম স্ট্রিং এন্টি-স্ট্রিং জুটি একক চরিত্র বা খাটো না হওয়া পর্যন্ত আপনার প্রোগ্রামটির প্রক্রিয়াটি পুনরাবৃত্তি করা উচিত।
উদাহরণস্বরূপ একই স্ট্রিংয়ের সাথে কাজ করা ধসের পরে নতুন দীর্ঘতম জুটি
fAcGfagF
সুতরাং আমরা আবার স্ট্রিং ভেঙে
fAcGag
স্ট্রিংটি আরও সঙ্কুচিত হতে পারে না সুতরাং আমাদের এটি আউটপুট করা উচিত।
প্রার্থীর জুটির মধ্যে টাইয়ের ক্ষেত্রে (উদাহরণস্বরূপ AvaVA
) আপনি হ্রাস করতে পারেন ( AaA
বা AvV
, তবে নয় Aa
)।
এটি কোড-গল্ফ তাই কম বাইট ভাল হওয়ার সাথে বাইটে উত্তরগুলি দেওয়া হবে।
পরীক্ষার মামলা
fAbbAcGfaBBagF -> fAcGag
AvaVA -> AaA / AvV
QQQQQQQ -> QQQQQQQ
fAbbAcQQQQaBBacqqqqA -> fAbcQBcq
gaq -> gaq
fAbbAcGfaBBagFaBBa -> fcGaBBag
প্রণোদনা
যদিও এই সমস্যাটি নির্বিচারে মনে হতে পারে তবে এটি মূলত এমন একটি সমস্যা যা আমি মৌলিক বহুভুজগুলি প্রক্রিয়া করার কোড তৈরি করার সময় सामना করেছি। এই প্রক্রিয়াটি একটি মৌলিক বহুভুজকে একটি ছোট এন- ড্রাগনে হ্রাস করতে ব্যবহার করা যেতে পারে । আমি চেষ্টা করার পরে আমি ভেবেছিলাম এটি একটি সুন্দর ছোট গল্ফ তৈরি করবে।
aaaAAAaaa -> aAaaa
?