পটভূমি
বিডাব্লুটিটি প্রয়োগ করার পরে (যেমনটি বুড়ো, হুইলার এবং পিছনে দেখা যায় ) এবং এমটিএফ ( মুদ্রণযোগ্য এএসসিআইআই সম্মুখভাগে সরানো হিসাবে দেখা যায় ), bzip2 সংক্ষেপক রান-দৈর্ঘ্যের এনকোডিংয়ের পরিবর্তে অনন্য রূপ প্রয়োগ করে।
সংজ্ঞা
এই চ্যালেঞ্জের উদ্দেশ্যে, আমরা রূপান্তর বিআরএলএকে সংজ্ঞায়িত করেছি:
প্রদত্ত একটি ইনপুট স্ট্রিং গুলি যে একমাত্র 0x20 এবং 0x7A মধ্যে কোড পয়েন্ট সঙ্গে ASCII অক্ষর নিয়ে গঠিত নিচের কাজগুলো করুন:
প্রথমটির পরের অক্ষরের একক সংঘটন দ্বারা সমান অক্ষরের প্রতিটি রানকে প্রতিস্থাপন করুন store
দ্বিপাক্ষিক বেস -২ সংখ্যা এবং চিহ্নগুলি এবং ব্যবহার করে চরিত্রের প্রথম উপস্থিতির পরে পুনরাবৃত্তির সংখ্যা এনকোড করুন ।
{
}
একটি অ নেতিবাচক পূর্ণসংখ্যা এন স্ট্রিং হিসেবে এনকোড করা আছে খ ট ... খ 0 যেমন যে এন = 2 ট আমি (খ ট ) ... +2 0 আমি (খ 0 ) , যেখানে আমি (
{
) = 1 এবং আমি (}
) = 2 ।মনে রাখবেন যে এই উপস্থাপনাটি সর্বদা অনন্য। উদাহরণস্বরূপ, 0 নম্বরটি একটি খালি স্ট্রিং হিসাবে এনকোড করা হয়েছে।
সংশ্লিষ্ট চরিত্রের একক ঘটনার পরে পুনরাবৃত্তির সংখ্যা এনকোড করে এমন কোঁকড়া বন্ধনীগুলির স্ট্রিং .োকান।
ধাপে ধাপে উদাহরণ
Input: "abbcccddddeeeeeffffffggggggghhhhhhhh"
Step 1: "abcdefgh" with repetitions 0, 1, 2, 3, 4, 5, 6, 7
Step 2: "" "{" "}" "{{" "{}" "}{" "}}" "{{{"
Step 3: "ab{c}d{{e{}f}{g}}h{{{"
কার্য
STDIN থেকে বা কমান্ড-লাইন বা ফাংশন আর্গুমেন্ট হিসাবে একটি একক স্ট্রিং পড়া বা বিআরএল বা এর ইনপুট স্ট্রিংয়ের বিপরীতটি প্রিন্ট করে বা ফেরত দেয় এমন একটি অন্তর্ভুক্ত প্রোগ্রাম বা ফাংশন প্রয়োগ করুন।
যদি ইনপুটটিতে কোনও কোঁকড়া বন্ধনী থাকে না, BRLE প্রয়োগ করুন। যদি ইনপুটটিতে কোঁকড়ানো বন্ধনী থাকে তবে এর বিপরীতটি প্রয়োগ করুন।
উদাহরণ
INPUT: CODEGOLF
OUTPUT: CODEGOLF
INPUT: PROGRAMMING
OUTPUT: PROGRAM{ING
INPUT: PUZ{LES
OUTPUT: PUZZLES
INPUT: 444488888888GGGGGGGGGGGGGGGGWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
OUTPUT: 4{{8{{{G{{{{W{{{{{
INPUT: y}}}{{
OUTPUT: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
অতিরিক্ত বিধি
আপনি কোনও বিল্ট-ইন ব্যবহার করতে পারবেন না যা বিআরএল বা তার একটি স্ট্রিংয়ের বিপরীতমুখী গণনা করে।
আপনি বিল্ট-ইনগুলি ব্যবহার করতে পারেন যা:
একটি স্ট্রিংয়ের আরএলই বা আরএলডি গণনা করুন, যতক্ষণ না দ্বিঘাতী বেস -২ এ পুনরাবৃত্তির সংখ্যা সংরক্ষণ করা হয় না।
যে কোনও ধরণের বেস রূপান্তর সম্পাদন করুন।
আপনি যদি আউটপুট জন্য STDOUT চয়ন করেন তবে আপনার কোডটি একটি ট্রেলিং নিউলাইন মুদ্রণ করতে পারে।
আপনার কোডটি 0x20 থেকে 0x7A, আরও কোঁকড়া বন্ধনী (0x7B এবং 0x7D) এর পরিসীমাতে 1000 বা তার চেয়ে কম ASCII অক্ষরের কোনও ইনপুট জন্য কাজ করতে হবে।
যদি ইনপুটটিতে কোঁকড়ানো বন্ধনী রয়েছে, আপনি ধরে নিতে পারেন যে এটি স্ট্রিতে BRLE প্রয়োগের একটি বৈধ ফলাফল।
স্ট্যান্ডার্ড কোড গল্ফ বিধি প্রযোজ্য। বাইটস মধ্যে সংক্ষিপ্ততম জমা জয়।