এপিএলে, আপনি স্বচ্ছ ফাংশন লিখতে পারেন, এটি ট্রেন বলে । তারা কীভাবে কাজ করে তা এই চ্যালেঞ্জের জন্য অপ্রাসঙ্গিক। ⍴
ফাংশন হিসাবে ব্যবহার করে এগুলি বিভিন্ন উপায়ে গোষ্ঠীভুক্ত করা যেতে পারে :
⍴ -> ⍴
⍴⍴ -> ⍴⍴
⍴⍴⍴ -> ⍴⍴⍴
⍴⍴⍴⍴ -> ⍴(⍴⍴⍴)
⍴⍴⍴⍴⍴ -> ⍴⍴(⍴⍴⍴)
⍴⍴⍴⍴⍴⍴ -> ⍴(⍴⍴(⍴⍴⍴))
...
অর্ডার একই থাকে। পদ্ধতিটি হ'ল যতক্ষণ না কঠোরভাবে 3 টির বেশি ফাংশন থাকে, শেষ 3 টি ফাংশনকে একটি ফাংশনে বিভক্ত করা হয়। যদি আমরা কোনও নেস্টেড ট্রেনের সাথে দেখা করি, চালিয়ে যাওয়ার আগে আমরা প্রথমে এটি প্রথম বন্ধনীভূত করি। প্রক্রিয়াটি এখানে প্রয়োগ করা হয়েছে ⍴⍴⍴⍴⍴⍴
:
Step 0: ⍴⍴⍴⍴⍴⍴
There are strictly more than 3 functions, repeat.
Step 1: ⍴⍴⍴(⍴⍴⍴)
There are strictly more than 3 functions, repeat.
Step 2: ⍴(⍴⍴(⍴⍴⍴))
There are 3 or less functions, we're done.
এখানে একই পদ্ধতি প্রয়োগ করা হয়েছে ⍴⍴⍴(⍴⍴)⍴(⍴⍴⍴⍴(⍴⍴⍴))⍴⍴
:
Step 0: ⍴⍴⍴(⍴⍴)⍴(⍴⍴⍴⍴(⍴⍴⍴))⍴⍴
There are strictly more than 3 functions, repeat.
We have met a nested train, applying procedure to that first:
Step 0: ⍴⍴⍴⍴(⍴⍴⍴)
There are strictly more than 3 functions, repeat.
We have met a nested train, applying procedure to that first:
Step 0: ⍴⍴⍴
There are 3 or less functions, we're done.
Step 1: ⍴⍴(⍴⍴(⍴⍴⍴))
There are 3 or less functions, we're done.
Step 1: ⍴⍴⍴(⍴⍴)⍴((⍴⍴(⍴⍴(⍴⍴⍴)))⍴⍴)
There are strictly more than 3 functions, repeat.
We have met a nested train, applying procedure to that first:
Step 0: ⍴⍴
There are 3 or less functions, we're done.
Step 2: ⍴⍴⍴((⍴⍴)⍴((⍴⍴(⍴⍴(⍴⍴⍴)))⍴⍴))
There are strictly more than 3 functions, repeat.
Step 3: ⍴(⍴⍴((⍴⍴)⍴((⍴⍴(⍴⍴(⍴⍴⍴)))⍴⍴)))
There are 3 functions or less, we're done.
ইনপুট
এই চ্যালেঞ্জের জন্য, ইনপুট সরল করা হবে। এর অর্থ হল যে আপনি প্রথম বন্ধনী খোলার এবং বন্ধ করার জন্য 2 টি আলাদা অক্ষর এবং ফাংশনের জন্য 1 অক্ষর চয়ন করতে পারেন, প্রথম বন্ধনী হিসাবে বেছে নেওয়া পছন্দগুলি থেকে আলাদা। আপনার চয়ন করা চরগুলি অবশ্যই সামঞ্জস্যপূর্ণ হতে হবে। ইনপুটটি খালি হবে না এবং এতে কোনও লিখিত সামগ্রী (যেমন ()
) নেই parent
আউটপুট
আবার, আপনি 3 টি আলাদা অক্ষর, প্রথম বন্ধনীর জন্য 2 এবং ফাংশনের জন্য 1 বেছে নিতে পারেন। নোট করুন যে ইনপুট জন্য বেছে নেওয়া তাদের মত একই হতে হবে না, তবে তারা অবশ্যই সামঞ্জস্যপূর্ণ হতে হবে।
বিধি
- যদি কোনও বন্ধনী রয়েছে যা কেবলমাত্র ইনপুটে তাদের মধ্যে একটি ফাংশন আবদ্ধ করে রাখে, আপনাকে অবশ্যই আউটপুটে তাদের সরিয়ে ফেলতে হবে। আপনার আউটপুটটিতে অপরিশোধিত বন্ধনী থাকতে পারে না (অর্থাত্ কেবলমাত্র একটি ফাংশন আবদ্ধ করা, বা পুরো আউটপুটটি ঘের)।
- যতক্ষণ না আপনার সমাধান এই চ্যালেঞ্জের জন্য কার্যকর থাকে ততক্ষণ আপনার এখানে ব্যবহৃত অ্যালগরিদম প্রয়োগ করার দরকার নেই।
- ইনপুট এবং আউটপুট ইনপুট এবং আউটপুট বিভাগে বর্ণিত বিন্যাসে স্ট্রিং। ইনপুটটিতে কমপক্ষে একটি অক্ষর থাকবে।
- স্ট্যান্ডার্ড লুফোলগুলি ব্যবহার করা কঠোরভাবে নিষিদ্ধ।
- এটি কোড-গল্ফ , তাই সংক্ষিপ্ত উত্তর জেতে। তবে কোনও গ্রহণযোগ্য উত্তর থাকবে না, যেহেতু এটি প্রতি ভাষার প্রতিযোগিতা এবং অন্যান্য ভাষায় লিখিত কোডের তুলনায় এই টাস্কটির ফলে দীর্ঘতর কোড আসতে পারে এমন ভাষায় উত্তর দেওয়ার জন্য উত্সাহ দেওয়া।
পরীক্ষার মামলা
এখানে ব্যবহৃত অক্ষরগুলি হল ()⍴
, আপনার সেগুলি আপনার নির্বাচিত অক্ষরগুলি দিয়ে প্রতিস্থাপন করা উচিত।
⍴ -> ⍴
⍴ -> ⍴
⍴⍴ -> ⍴⍴
⍴⍴⍴ -> ⍴⍴⍴
⍴⍴⍴⍴ -> ⍴(⍴⍴⍴)
⍴⍴⍴⍴⍴⍴⍴⍴⍴⍴⍴⍴⍴⍴⍴ -> ⍴⍴(⍴⍴(⍴⍴(⍴⍴(⍴⍴(⍴⍴(⍴⍴⍴))))))
⍴⍴⍴⍴⍴(⍴⍴⍴)⍴⍴(⍴(⍴⍴⍴)⍴⍴⍴)⍴⍴⍴ -> ⍴(⍴⍴(⍴⍴((⍴⍴⍴)⍴(⍴(⍴(⍴⍴⍴)(⍴⍴⍴))(⍴⍴⍴)))))
(⍴⍴⍴)(⍴⍴⍴)(⍴⍴⍴) -> (⍴⍴⍴)(⍴⍴⍴)(⍴⍴⍴)
(⍴⍴⍴)(⍴⍴⍴)⍴⍴⍴ -> (⍴⍴⍴)(⍴⍴⍴)(⍴⍴⍴)
⍴⍴(⍴)⍴⍴ -> ⍴⍴(⍴⍴⍴)
((⍴⍴)) -> ⍴⍴
⍴⍴((⍴⍴))⍴⍴ -> ⍴⍴((⍴⍴)⍴⍴)
এই চ্যালেঞ্জটি স্যান্ডবক্সে পোস্ট করা হয়েছে। প্রয়োজনীয় সুবিধা থাকে, তাহলে আপনি স্যান্ডবক্স পোস্ট দেখতে পারেন এখানে ।