অন্য দিন, আমাদের দল একটি পালানোর ঘরে গেল। ধাঁধাগুলির মধ্যে একটিতে ছয়টি যান্ত্রিক সুইচের একটি বোর্ড জড়িত যেখানে কোনও বাক্স আনলক করতে আপনাকে কিছুটা সঠিকভাবে চালু এবং বন্ধের সঠিক সংমিশ্রণ খুঁজে পেতে হয়েছিল:
-v-v-v-
-v-v-v-
বিকাশকারী হওয়ায়, আমরা স্থির করেছি যে আসলে ধাঁধাটি সমাধান করার চেয়ে 2 ^ 6 = 64 টি সংমিশ্রণের প্রত্যেকটিকেই চেষ্টা করা আরও দক্ষ হবে। সুতরাং আমরা কিছু দরিদ্র লোককে কিছু বাইনারি গণনা করার জন্য নিযুক্ত করেছিলাম:
-v-v-v-
-v-v-v-
-v-v-v-
-v-v-^-
-v-v-v-
-v-^-v-
-v-v-v-
-v-^-^-
ইত্যাদি।
চ্যালেঞ্জটি
এমন একটি প্রোগ্রাম লিখুন যা উপরের মতো বিন্যাসিত স্ট্রিং হিসাবে সমস্ত সুইচগুলি বন্ধ করে দেওয়া, কোনও ক্রমে চালু এবং বন্ধ সমস্ত সংমিশ্রণ উত্পন্ন করে।
আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন। সুতরাং, আপনার প্রোগ্রামটি স্টিডিনের মাধ্যমে ইনপুট নিতে পারে, একটি ফাইল, বা একটি একক স্ট্রিং আর্গুমেন্ট হিসাবে, এবং হয় আউটপুট ফিরে বা মুদ্রণ করতে পারে। যদি ফিরে আসে তবে আউটপুট কোনও তালিকা / অ্যারে / ইত্যাদিতে থাকতে পারে। বরং একটি স্ট্রিং চেয়ে। যদি আউটপুট একটি একক স্ট্রিং হয় তবে বোর্ডগুলি নিউলাইনগুলি দ্বারা পৃথক করা উচিত (ট্রেলিং নিউলাইনগুলি অনুমোদিত))
ইনপুট স্ট্রিংগুলি রেজেক্সের সাথে মিলবে r'((-v)+-)(\n(-v)+-)*'
এবং সমস্ত স্যুইচ বন্ধ করে একটি বোর্ডকে উপস্থাপন করবে । এর অর্থ শূন্যের কোনও ক্ষেত্রে নেই, এবং স্যুইচগুলি বাম-সারিবদ্ধ হয়। প্রতিটি সারিতে একই সংখ্যক সুইচ নাও থাকতে পারে।
প্রতিটি আউটপুট বোর্ড ইনপুট হিসাবে ঠিক একই বিন্যাসে হওয়া উচিত, ব্যতীত v এর প্রয়োজন অনুসারে replaced এর দ্বারা প্রতিস্থাপন করা যেতে পারে। আউটপুট বোর্ডগুলি যে কোনও নতুন লাইনের দ্বারা পৃথক করা যায়।
যেহেতু রানটাইম স্বাভাবিকভাবে ও (2 ^ n) সুইচের সংখ্যায় হয় তাই আপনার কোডটি কোনও বিন্যাসে 10 টিরও বেশি সুইচে পরীক্ষা করা হবে না।
এটি কোড-গল্ফ, তাই বাইট জয়ের সংখ্যায় সংক্ষিপ্ততম কোড।
নমুনা ইনপুট এবং আউটপুট
ইনপুট:
-v-
সম্ভাব্য আউটপুট:
-v-
-^-
ইনপুট:
-v-
-v-
সম্ভাব্য আউটপুট:
-^-
-^-
-^-
-v-
-v-
-^-
-v-
-v-
যেহেতু আপনার উত্তরটি বড় সংখ্যক সুইচের জন্য পরীক্ষা করা অত্যন্ত ক্লান্তিকর, তাই এখানে স্যানিটি পরীক্ষার সরঞ্জাম হিসাবে পাইথন স্ক্রিপ্ট। (আপনি আরও পরীক্ষার কেস চাইলে প্রদত্ত ইনপুট ফাইল থেকে প্রত্যাশিত আউটপুট তৈরি করতে আমি বর্তমানে একটি মন্তব্য-আউট স্নিপেট অন্তর্ভুক্ত করেছি;) দুর্ভাগ্যক্রমে, অনুমানের চেয়ে ইনপুট এবং আউটপুটের ক্ষেত্রে এটি কিছুটা কম নমনীয়; 'ইনপুট' নামের একটি ফাইলের ইনপুট স্ট্রিংটি একই ডিরেক্টরিতে চালিত করে 'আউটপুট' নামের একটি ফাইলের মধ্যে নিউলাইন-বিচ্ছিন্ন আউটপুট (দুঃখিত, কোনও তালিকা বিন্যাস নেই) রাখুন এবং রান করুন python3 sanitycheck.py
।