এই চ্যালেঞ্জটি এপ্রিল 2018 এর লটএম চ্যালেঞ্জের অংশ হিসাবে পোস্ট করা হয়েছিল
মস্তিষ্ক-ফ্ল্যাক একটি টিউরিং-টারপিট ভাষা যা পিপিসিজিতে এখানে বেশ খ্যাতি অর্জন করেছে। ভাষা স্মৃতির দুই স্ট্যাকগুলি সুরারোপিত করা হয়, কিন্তু একটি "গোপন" তৃতীয় স্ট্যাক আবিষ্কৃত হয় দ্বারা Wh ই উইজার্ড এ , চিন্তা ব্রেন-বিমানবিধ্বংসী কামান প্রোগ্রামের কিছু মজার নতুন উপায় সৃষ্টি করে।
সুতরাং, এই দরিদ্র লুকানো তৃতীয় স্ট্যাককে আরও দৃশ্যমানতা দেওয়ার বিষয়ে কী? আসুন এমন একটি ভাষা তৈরি করুন যেখানে তৃতীয় স্ট্যাকটির এটির প্রাপ্য স্বীকৃতি রয়েছে! এখানে আমি আপনাকে তৃতীয়-ফ্ল্যাক উপস্থাপন করছি ।
ভাষা
তৃতীয়-ফ্ল্যাકમાં কেবল একটি স্ট্যাক রয়েছে, যাকে তৃতীয় স্ট্যাক বলা হয়। অপারেটর একই ভাবে তারা ব্রেন-বিমানবিধ্বংসী কামান না তৃতীয় স্ট্যাক কাজ করে, কিন্তু এখানে নেই []
, {}
, <>
nilads এবং কোন {...}
একসংখ্যা (তাই একটি তৃতীয় বিমানবিধ্বংসী কামান প্রোগ্রামে শুধুমাত্র গ্রাহ্য অক্ষর ()[]<>
)। এখানে প্রতিটি অপারেটর যা করেন তা এখানে (উদাহরণগুলির সাথে তালিকার তৃতীয় স্ট্যাকের প্রতিনিধিত্ব করা হবে যেখানে শেষ উপাদানটি স্ট্যাকের শীর্ষে রয়েছে):
()
তৃতীয়-ফ্লাকের মধ্যে কেবলমাত্র দুটি অক্ষরের অপারেটর। এটি তৃতীয় স্ট্যাকের শীর্ষকে ১ দ্বারা বৃদ্ধি করে Example উদাহরণ:[1,2,3]
→[1,2,4]
(
,[
,<
: সমস্ত খোলার প্রথম বন্ধনী যে আগের কেস দ্বারা আচ্ছাদিত করা হয় না একটি ধাক্কা0
তৃতীয় স্ট্যাকে। উদাহরণ:[1,2,3]
→[1,2,3,0]
)
তৃতীয় স্ট্যাক থেকে দুটি উপাদান পপ করে এবং তাদের যোগফল পিছনে ঠেলে দেয়। উদাহরণ:[1,2,3]
→[1,5]
]
তৃতীয় স্ট্যাক থেকে দুটি উপাদান পপ করে এবং দ্বিতীয় থেকে প্রথমটি বিয়োগের ফলাফলটিকে পিছনে ঠেলে দেয়। উদাহরণ:[1,2,3]
→[1,-1]
>
তৃতীয় স্ট্যাক থেকে একটি উপাদান পপ করে। উদাহরণ[1,2,3]
→[1,2]
এবং ভাষাটির অন্যান্য নিয়মগুলি এখানে:
মৃত্যুদন্ডের শুরুতে তৃতীয় স্ট্যাকটিতে কেবল একটি মাত্র 0 থাকে।
কোনও প্রোগ্রাম খালি রাখা
[]
বা<>
ভিতরে রাখা নিষিদ্ধ (তৃতীয়-ফ্ল্যাঙ্কের শব্দার্থবিজ্ঞানের অনুসরণ করে তারা যেভাবেই হোক না কেন, তবে মস্তিষ্ক-ফ্ল্যাঙ্কে তাদের প্রকৃত অর্থ এখানে রয়েছে যা এখানে পুনরায় তৈরি করা সম্ভব নয়)।প্যারেন্টিহিসগুলি সর্বদা ভারসাম্যপূর্ণ হওয়া দরকার, প্রোগ্রামের শেষে ক্লিয়ারিং বন্ধনী অনুপস্থিত হতে পারে except উদাহরণ হিসাবে,
[()<(()
একটি বৈধ তৃতীয়-ফ্ল্যাক প্রোগ্রাম (এবং প্রোগ্রামের শেষে তৃতীয় স্ট্যাকটি হবে[1,0,1]
)।একটি প্রোগ্রামে কেবল ছয়টি অনুমোদিত অক্ষর থাকতে পারে
()[]<>
। প্রোগ্রামগুলি খালি খালি থাকার গ্যারান্টিযুক্ত।
দ্রষ্টব্য: এটি পূর্ববর্তী বিধি দ্বারা বোঝানো হয়েছে যে আপনাকে খালি স্ট্যাক থেকে পপ করতে হবে এমন পরিস্থিতিতে আপনাকে মোকাবেলা করতে হবে না।
চ্যালেঞ্জ
সরল, তৃতীয়-ফাঁকের জন্য একটি অনুবাদক লিখুন। আপনার প্রোগ্রাম অবশ্যই ইনপুট হিসাবে একটি তৃতীয়-ফ্ল্যাক প্রোগ্রাম গ্রহণ করবে এবং প্রোগ্রামের শেষে আউটপুট হিসাবে তৃতীয় স্ট্যাকের অবস্থানে ফিরে আসবে।
আপনার আউটপুট ফর্ম্যাটটি ততক্ষন নমনীয় যেহেতু এটি থেকে তৃতীয় স্ট্যাকের অবস্থাটি নির্বিঘ্নে পড়া সম্ভব এবং একই সংখ্যাটি সর্বদা একইভাবে এনকোড করা থাকে (এটি কেবল এইভাবে বলার উপায় যে কোনও আউটপুট ফর্ম্যাট এটি একটি স্পষ্ট উপায় নয়) ঠকানোর চেষ্টা করা ভাল is
আপনার আউটপুট পছন্দটি যতক্ষণ সংখ্যাকে পরিচালনা করতে পারে ততক্ষণ সীমাবদ্ধ করতে পারে যতক্ষণ এটি চ্যালেঞ্জকে তুচ্ছ করে না (যেহেতু এটি একটি ডিফল্ট লুফোল হবে )।
পরীক্ষার মামলা
প্রতিটি পরীক্ষার ক্ষেত্রে প্রথম লাইনটি ইনপুট এবং দ্বিতীয় লাইনের আউটপুট স্ট্যাকটি সংখ্যার একটি স্থান বিভাজিত তালিকা হিসাবে প্রতিনিধিত্ব করে যেখানে স্ট্যাকের শীর্ষটি সর্বশেষ উপাদান is
[()<(()
0 1 0 1
[((((()()()()()))
0 0 0 5
((([()][()][()])))
-3
[<<(((()()()())(((((
0 0 0 0 0 4 0 0 0 0 0
[()]<(([()])><[()]
-1 0 -1
(())(()()())(())(())(()()())(())(())(()()())(())(()()()()())(()())(()()()()())(())(()()())(())(()()()()())(())(())(())(())(()()()()())(())(())(()()())(())(())(()()())(())(()()()()())(()())(()()()()())(())(()()())(())(()()()()())(())(())(())(())(())(())(()())(())(())(())(()())(()()()())(())(()()()()())(()())(()())(()())(()()())(())(()())(())(()()()()())(()())(()()()()())(())(())(())(())(())(()())(())(())(())(()()()()())(())(())(()()()()())(())(())(()()()()())(())(())(()())(())(()())(())(()())(())(()())(())(()())(()())(()())(()())(()())(()())(()())(()())(())(()()()()())(())(())(()()())(())(())(()()())(())(()()()()())(()())(()()()()())(())(()()())(())(())(()()())(()())(())(()()()()())(())(())(()()())(())(())(()()())(())(()()()()())(()())(()()()()())(())(())(())(()()())(())(())(()()())(())(())(()()())(())(()()()()())(()())(()()()()())(()()())(())(()()())(())(())(())(()())(()()())(()())(())(()()()()())(()())(())(()()())(())(()()()()())(())(())(())(()()())(())(())(())(()())(())(()())(()()()())(())(())(()()()()())(()())(()())(())(()()())(())(())(())(())(()()())(()())(())(())(()()()()())(())(())(()()()()())(())(())(()()()()())(())(())(()())(())(()())(())(()())(())(()())(()())(()())(()())(())(()()()()())(()())(())(()()())(())(()()()()())(()()()()())(())(()()())(())(())(()())(())(()()()()())(())(()()()()())(())(())(())(()()()()())(())(())(()())(())(()())(())(()())(())(()())(())(()())(()())(()())(()())(())(()()()()())(()())(())(()()())(())(())(()())(())(()()()()())(()())(()()()()())(())(()()())(())(())(()()()()())(())(()()()()())(())(())(())(()())(())(()()()()())(())(())(()())(())(()())(())(()())(()())(()())(()())(())(()()()()())(()())(())(()()()()())(())(()()())(())(())(()())(())(()()()()())(()())(()()()()())(())(()()())(())(())(())(()())(()()()())(())(())(()())(())(()()()()())(())(())(()()()()())(())(())(()()()()())(())(())(()())(())(()())(())(()())(())(()())(())(()())(()())(()())(()())(()())(()())(())(()()())(())(())(()())(())(()()()()())(()())(()()()()())(()()())(())(())(()())(())(())(()()()()())(()()()())(()())(()())(()()())(())(()())(())(()()()()())(()())(()()()()())(())(())(())(()()()())(()()()())(()()
718 2
e
তবে এখানে ক্রস আউট রয়েছে ।
[()]
এই নিয়ম ভঙ্গ করে যে খালি স্ট্যাক থেকে পপিংয়ের জন্য আমাদের চিন্তা করার দরকার নেই