আপনার চ্যালেঞ্জটি এই নিয়ম অনুসারে ব্রেনফাক কোডকে ছোট করা :
- যে কোনও একটি নয় সেটিকে সরিয়ে ফেলুন
+-><[].,
। - ধারাবাহিক
+
বা-
অক্ষরের যে কোনও গ্রুপের জন্য , যদি+
s এবং-
s এর পরিমাণ একই হয় তবে সেগুলি সরান। - উপরের মত একই করুন,
>
এবং সাথে<
। +-><
অক্ষরগুলির ক্রমগুলি সরিয়ে ফেলুন যদি তারা কিছু না করে। উদাহরণস্বরূপ, আপনার অপসারণ করা উচিত+>-<->+<
। (এটি কার্যকর করা সবচেয়ে কঠিন এবং কার্যকরতম হতে পারে)) আপনি কোনও মিথ্যা ধনাত্মকতা না পেয়েছেন তা নিশ্চিত করুন, যেমন+>-<+>-<
সরিয়ে দেওয়া উচিত নয়।
পরীক্ষার কেস:
ইনপুট
++++++[->++++++<]>. prints a $
[-]< resets tape
>,[>,]<[.<] reverses NUL terminated input string
++-->><< does nothing
আউটপুট
++++++[->++++++<]>.[-],[>,]<[.<]
ইনপুট
Should disappear: ++>>+<+++<->-->-<<->-<
Should disappear: +++>-<--->+<
Should stay: +++>-<+>---<
আউটপুট
+++>-<+>---<
আপনি চাইলে ইনপুট এবং আউটপুট গ্রহণ করতে পারেন - stdin / stdout, একটি ফাংশন, ইত্যাদি, তবে ইনপুট হার্ডকোড নাও থাকতে পারে।
এটি কোড-গল্ফ , তাই চরিত্র গণনায় সবচেয়ে সংক্ষিপ্ত কোডটি জিততে পারে।
+++>-<+>---<
,? অপ্রয়োজনীয় পয়েন্টার চলন এড়াতে এটি ছোট করা যেতে পারে, তবে প্রত্যাশিত আউটপুট এটিকে অপরিবর্তিত রাখে। প্রশ্ন এবং উত্তর উভয়ের দিকে তাকানোর উপর ভিত্তি করে আমার বোঝার বিষয়টি হ'ল দুরকনব স্পষ্টভাবে স্পষ্টভাবে নেওয়া হচ্ছে বলে; আমরা কোনো নো অপ সংলগ্ন নিষ্কাশন আবশ্যক +-><
যেমন স্পষ্টভাবে বিবৃত সিকোয়েন্স, এবং যে অতিক্রম এটি আপনার উদাহরণ হিসাবে অতিরিক্ত minifying করতে অনুমোদনযোগ্য ++>>++<<--
, এবং আমরা যতদিন rearrangements করতে পারেন হিসাবে তারা কোড, উদাঃ কার্যকারিতা পরিবর্তন করবেন না >+<+
বা +>+<
।
+>-<->+<
((এটি কার্যকর করা সবচেয়ে কঠিন এবং কঠিনতম হতে পারে)) নিশ্চিত করুন যে আপনি কোনও মিথ্যা ইতিবাচক না পেয়েছেন, যেমন +>-<+>-<
, যা অপসারণ করা উচিত নয়। " - এটি এক ধরণের অস্পষ্ট
++>>++<<--
আউটপুট করা উচিত>>++<<
, এবং এটি আবৃত ছিল না। দয়া করে আরও পরীক্ষার কেস যুক্ত করুন।