কম্পিউটার বিজ্ঞানী হিসাবে, আপনি সম্ভবত পপ এবং পুশের প্রাথমিক তালিকার ক্রিয়াকলাপের সাথে পরিচিত । এগুলি সাধারণ অপারেশন যা উপাদানগুলির একটি তালিকা পরিবর্তন করে। তবে আপনি কি কখনও অপারেশন ফ্লপের কথা শুনেছেন ? ( ফ্লিপ ফ্লপ হিসাবে )? এটা বেশ সহজ। একটি নম্বর দেওয়া এন , প্রথম বিপরীত এন তালিকার উপাদান। এখানে একটি উদাহরণ:
>>> a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> a.flop(4)
[4, 3, 2, 1, 5, 6, 7, 8, 9, 10]
ফ্লপ অপারেশন সম্পর্কে দুর্দান্ত জিনিস হ'ল আপনি এটি ব্যবহার করতে পারেন কিছু দুর্দান্ত জিনিসগুলি তালিকায় কিছু সাজান যেমন বাছাই করা । আমরা ফ্লপগুলির সাথে অনুরূপ কিছু করতে যাচ্ছি:
পূর্ণসংখ্যার একটি তালিকা দেওয়া হয়েছে, "এটি নিকটবর্তী এটি"। অন্য কথায়, এটি বাছাই করুন যাতে প্রতিটি সদৃশ উপাদান ক্রমাগত প্রদর্শিত হয়।
এটি ফ্লপ দিয়েও করা যায়! উদাহরণস্বরূপ, নিম্নলিখিত তালিকাটি গ্রহণ করুন:
>>> a = [3, 2, 1, 4, 3, 3, 2]
>>> a.flop(4)
[4, 1, 2, 3, 3, 3, 2]
>>> a.flop(3)
[2, 1, 4, 3, 3, 3, 2]
>>> a.flop(6)
[3, 3, 3, 4, 1, 2, 2]
এটি আমাদের আজকের চ্যালেঞ্জের সংজ্ঞাতে নিয়ে যায়:
পূর্ণসংখ্যার একটি তালিকা দেওয়া হয়েছে, ফ্লপের কোনও সেট আউটপুট করুন যার ফলে তালিকাটি প্রতিবেশী হবে।
উদাহরণ হিসাবে সর্বশেষ তালিকাটি ব্যবহার করে, আপনার আউটপুট করা উচিত:
4
3
6
কারণ তালিকাটি 4 দ্বারা ফ্লপ করা, তারপরে 3 দ্বারা, তারপরে 6 দ্বারা প্রতিবেশী তালিকার ফলস্বরূপ। মনে রাখবেন যে আপনি কি না কম সম্ভব তালিকা প্রিন্ট দরকার প্রতিবেশীদের একটি তালিকা flops। আপনি যদি মুদ্রিত ছিল:
4
4
4
3
1
1
6
2
2
পরিবর্তে, এটি এখনও একটি বৈধ আউটপুট হবে। যাইহোক, আপনি may না তালিকার দৈর্ঘ্যের তুলনায় কি কখনো আউটপুট একটি সংখ্যা বড় করা হয়েছে। এটি কারণ একটি তালিকার জন্য a = [1, 2, 3]
, কল a.flop(4)
করা অযৌক্তিক।
এখানে কিছু উদাহরন:
#Input:
[2, 6, 0, 3, 1, 5, 5, 0, 5, 1]
#Output
[3, 7, 8, 6, 9]
#Input
[1, 2]
#Output
<any list of integers under 3, including an empty list>
#Input
[2, 6, 0, 2, 1, 4, 5, 1, 3, 2, 1, 5, 6, 4, 4, 1, 4, 6, 6, 0]
#Output
[3, 19, 17, 7, 2, 4, 11, 15, 2, 7, 13, 4, 14, 2]
#Input
[1, 1, 1, 1, 2, 2, 2, -1, 4]
#Output
[]
#Input
[4, 4, 8, 8, 15, 16, 16, 23, 23, 42, 42, 15]
#Output
[12, 7]
মনে রাখবেন যে এই প্রতিটি উদাহরণে প্রদত্ত আউটপুটটি কেবল একটি সম্ভাব্য বৈধ আউটপুট। আমি আগেই বলেছি, প্রদত্ত তালিকার প্রতিবেশী যে কোনও ফ্লপই একটি বৈধ আউটপুট । ফ্লপগুলির প্রদত্ত একটি তালিকা সঠিকভাবে প্রতিবেশীর একটি তালিকার কিনা তা যাচাই করতে আপনি এই অজগর স্ক্রিপ্টটি ব্যবহার করতে পারেন ।
আপনি কোনও যুক্তিসঙ্গত ফর্ম্যাটে ইনপুট এবং আউটপুট নিতে পারেন। উদাহরণস্বরূপ, ফাংশন আর্গুমেন্ট / রিটার্ন মান, STDIN / STDOUT, একটি ফাইল পড়া / লেখার ইত্যাদি সমস্ত বৈধ। যথারীতি এটি কোড-গল্ফ , তাই আপনি যা করতে পারেন তার সংক্ষিপ্ততম প্রোগ্রামটি তৈরি করুন এবং মজা করুন! :)