সেখানে হয় কয়েক প্রশ্ন এই সাইটে বন্ধনী মিট, এবং কিনা তা পরীক্ষা করে বন্ধনী সুষম সম্পর্কে। আমি প্রস্তাব দিচ্ছি যে এখন কিছু সময়ের জন্য সেই ভারসাম্য বন্ধনী ব্যবহার করার সময় এসেছে!
গণিত এবং প্রোগ্রামিংয়ে বন্ধনীগুলি বুদবুদগুলির মতো, ভিতরে সমস্ত কিছুকে বাইরে আলাদা করে তোলে যাতে ভিতরে যা কিছু থাকে তা শান্তিতে এটি করতে পারে এবং যা কিছু বাইরে থাকে কেবল একটি বস্তু দেখতে পায়। তবে বন্ধনীগুলির একটি স্ট্রিং এক-মাত্রিক, অন্যদিকে বুদবুদগুলি কমপক্ষে কমপক্ষে দুটি মাত্রিক হয়। এর অর্থ বুদবুদগুলি একে অপরের কাছাকাছি যেতে পারে যতক্ষণ না তারা একে অপরকে স্পর্শ করে না বা অন্য বুদবুদগুলির অভ্যন্তর এবং বাইরের মধ্যে ক্রস করে।
চ্যালেঞ্জ
ইনপুটটি একটি একক প্রকারের গোলাকার ()
, বর্গক্ষেত্র []
, কোঁকড়ানো {}
বা কোণে মিলে যাওয়া বন্ধনীগুলির একটি স্ট্রিং <>
। আপনি কীভাবে আপনার প্রোগ্রামটি গ্রহণ করতে চান এটি আপনার উপর নির্ভর করে এবং এমন একটি প্রোগ্রাম যা কেবলমাত্র একক ধরণের বন্ধনী গ্রহণ করে তা গৃহীত হয়। (আপনার প্রোগ্রাম যদি সেগুলি হ্যান্ডেল করতে পারে তবে কালিফিকাল বোনাস, যদি এটি একই ইনপুটগুলিতে সমস্তগুলি পরিচালনা করতে পারে তবে বিশাল কাল্পনিক বোনাস পয়েন্ট)) ইনপুটটিতে বন্ধনীগুলির মধ্যে কিছু থাকতে পারে না, যদিও পেছনের শ্বেতক্ষেত্রের অনুমতি রয়েছে।
আউটপুটটি হ'ল দুটি ব্র্যান্ডস একই স্ট্রিং ছাড়া বুদবুদগুলির একই কনফিগারেশন উপার্জন করে এমন বন্ধনীগুলির সমস্ত সম্ভব পুনর্বিন্যাস (স্বেচ্ছাসেবী ক্রমে এবং মূল ইনপুট সহ) is এর অর্থ হ'ল একটি ইনপুট সহ ()()
আউটপুটটিও ঠিক আছে ()()
, যদিও এটি প্রযুক্তিগতভাবে দুটি বুদবুদ স্থানগুলি অদলবদল করতে পারে। বিশাল কাল্পনিক বোনাসের জন্য, {}[]()
ইচ্ছার একটি ইনপুট অবশ্যই 6 টি বিভিন্ন উপাদান / স্ট্রিং / লাইনগুলির আউটপুট নিয়ে যায়।
বুদবুদগুলির দুটি কনফিগারেশন হ'ল "একই" আপনি যদি বুদবুদকে অন্য বুদ্বুদকে বাইরে থেকে বা বাইরে থেকে বাইরে যেতে না দিয়ে অন্যদিকে বুদবুদগুলি ঘুরিয়ে দিয়ে অন্যটিতে তৈরি করতে পারেন তবে। যদি আপনি নেস্টেড বন্ধনীকে গাছের সাথে তুলনা করেন (প্রতিটি মিলিত যুগল একটি নোড, এবং এর মধ্যে প্রতিটি মিলিত জোড় একটি সাবনোড হয়, এবং এর মধ্যে প্রতিটি মিলিত যুগল আবার সেইগুলির একটি সাবনোড থাকে, এবং অন্যভাবে) যেখানে কোনও নোডের সাবনোডগুলি অর্ডার করা হয় , তারপরে বুদবুদগুলির একটি একক কনফিগারেশন হ'ল এমন একটি গাছ যা নোডগুলি আনর্ডার্ড করা হয়।
যেকোন যুক্তিসঙ্গত আউটপুট বিন্যাসটি করবে যেমন স্ট্রিংগুলির তালিকা বা একক অক্ষরের তালিকার একটি তালিকা বা একক স্ট্রিংয়ের সাথে কোনও একরকম শ্বেত স্পেস, অথবা প্রিন্ট করা stdout
বা stderr
কিছু দৃশ্যমান হোয়াইটস্পেসের অক্ষর (বেশিরভাগ ক্ষেত্রে নতুনরেখা বা স্থান) এর মধ্যে মুদ্রণ প্রতিটি পুনর্গঠন।
প্রতিটি পুনর্গঠনের জন্য ট্র্যাকিং স্পেসস এবং আসল আউটপুট অনুমোদিত হওয়ার আগে এবং পরে নতুন লাইনেস / খালি তালিকার উপাদানগুলির পিছনে পিছনে এবং আগে চলে যাওয়া। আপনি নিজের ইনপুটটিতে যেমন গ্রহণ করেন তেমনই আপনার আউটপুটে একই ধরণের বন্ধনী ব্যবহার করা উচিত। এখানে বর্ণিত বন্ধনী, নিউলাইন এবং স্পেসগুলি ছাড়াও এবং আপনি যে কোনও বিভাজক ব্যবহার করেন না কেন কিছুই মুদ্রণ করা উচিত নয় (অদৃশ্য / শূন্য-প্রস্থের অক্ষর সহ)।
স্কোরটি কোডের বাইট সংখ্যা; প্রতিটি ভাষার জয়ের জন্য সর্বনিম্ন গণনা। আপনি খেয়াল করতে পারেন আপনি নিয়মিত বা বৃহত্তর কোনও কাল্পনিক বোনাস পান কিনা তবে তা আপনার স্কোরকে প্রভাবিত করে না। সত্যিকারের বোনাসগুলি সঠিক ব্যালেন্স করা খুব কঠিন।
ইনপুট-আউটপুট উদাহরণ
উদাহরণ 1:
ইনপুট:
()(())
আউটপুট:
()(())
(())()
উদাহরণ 2:
ইনপুট:
(()())()()
আউটপুট:
(()())()()
()(()())()
()()(()())
উদাহরণ 3:
ইনপুট:
(()(()))()
আউটপুট:
((())())()
()((())())
(()(()))()
()(()(()))
((()))
উদাহরণ 1 পেতে পারি না ? বা()()()
? দেখে মনে হচ্ছে আপনি প্রতিটি ইনপুটের জন্য অনুমতি অনুপস্থিত।