পটভূমি
পদক্ষেপ টু সামনে রুপান্তর (MTF) একটি ডাটা এনকোডিং এনট্রপি এনকোডিং প্রযুক্তির পারফরম্যান্সের উন্নতি করার জন্য ডিজাইন করা অ্যালগরিদম হয়।
ইন Bzip2 কম্প্রেশন অ্যালগরিদম , এটা পরে প্রয়োগ করা হয় বারোজ-হুইলার রুপান্তর (যেমন দেখা বারোজ, Wheeler এবং পিছনে ), ছোট, সহজে সংকোচনশীল অ নেতিবাচক পূর্ণসংখ্যার মধ্যে পুনরাবৃত্তি অক্ষরের গ্রুপ বাঁক উদ্দেশ্য সঙ্গে।
সংজ্ঞা
এই চ্যালেঞ্জের উদ্দেশ্যে, আমরা এমটিএফ এর মুদ্রণযোগ্য এএসসিআইআই সংস্করণটি নিম্নলিখিতভাবে সংজ্ঞায়িত করব:
প্রদত্ত একটি ইনপুট স্ট্রিং গুলি , একটি খালি অ্যারে নেওয়া দ , স্ট্রিং ঘ সব মুদ্রণযোগ্য ASCII অক্ষর এর (0x7E করার 0x20) এবং প্রতিটি অক্ষর জন্য নিম্নলিখিত পুনরাবৃত্তি গ এর গুলি :
সূচী সংযোজন করুন গ মধ্যে ঘ করার দ ।
সরান গ সামনে ঘ , অর্থাত্, অপসারণ গ থেকে ঘ এবং বাকি থেকে এটি পূর্বে লিখুন।
শেষ অবধি, আমরা আর এর উপাদানগুলিকে মূল d তে সূচক হিসাবে গ্রহণ করি এবং সংশ্লিষ্ট অক্ষরগুলি আনব।
ধাপে ধাপে উদাহরণ
INPUT: "CODEGOLF"
0. s = "CODEGOLF"
d = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
r = []
1. s = "ODEGOLF"
d = "C !\"#$%&'()*+,-./0123456789:;<=>?@ABDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
r = [35]
2. s = "DEGOLF"
d = "OC !\"#$%&'()*+,-./0123456789:;<=>?@ABDEFGHIJKLMNPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
r = [35 47]
3. s = "EGOLF"
d = "DOC !\"#$%&'()*+,-./0123456789:;<=>?@ABEFGHIJKLMNPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
r = [35 47 37]
4. s = "GOLF"
d = "EDOC !\"#$%&'()*+,-./0123456789:;<=>?@ABFGHIJKLMNPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
r = [35 47 37 38]
5. s = "OLF"
d = "GEDOC !\"#$%&'()*+,-./0123456789:;<=>?@ABFHIJKLMNPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
r = [35 47 37 38 40]
6. s = "LF"
d = "OGEDC !\"#$%&'()*+,-./0123456789:;<=>?@ABFHIJKLMNPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
r = [35 47 37 38 40 3]
7. s = "F"
d = "LOGEDC !\"#$%&'()*+,-./0123456789:;<=>?@ABFHIJKMNPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
r = [35 47 37 38 40 3 45]
8. s = ""
d = "FLOGEDC !\"#$%&'()*+,-./0123456789:;<=>?@ABHIJKMNPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
r = [35 47 37 38 40 3 45 41]
OUTPUT: "COEFH#MI"
কার্য
এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা প্রিন্টযোগ্য এএসসিআইআই এমটিএফ প্রয়োগ করে (উপরে বর্ণিত হিসাবে)
পরীক্ষার মামলা
Input: Programming Puzzles & Code Golf
Output: Prpi"do lp%((uz rnu&3!P/o&$U$(p
Input: NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN BATMAN!
Output: Na! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !!"DDUP"%'
Input: Two more questions and I have bzip2 in less than 100 bytes!
Output: Twp#o"si$sv#uvq(u$(l#o#W!r%w+$pz,xF%#,"x(. #0--'$GG ".z(**:
অতিরিক্ত বিধি
আপনি কোনও বিল্ট-ইন অপারেটর ব্যবহার করতে পারবেন না যা কোনও স্ট্রিংয়ের এমটিএফ গুনছে।
আপনি যদি আউটপুট জন্য STDOUT চয়ন করেন তবে আপনার কোডটি একটি ট্রেলিং নিউলাইন মুদ্রণ করতে পারে।
আপনার কোডটি 1000 বা তার বেশি মুদ্রণযোগ্য ASCII অক্ষর (0x20 থেকে 0x7E) এর কোনও ইনপুট জন্য কাজ করতে হবে to
স্ট্যান্ডার্ড কোড গল্ফ বিধি প্রযোজ্য। বাইটস মধ্যে সংক্ষিপ্ততম জমা জয়।