ধরুন আমাদের একটি সংখ্যা n আছে, এটি একটি কনভেনশনে প্রবেশ করতে চাইছেন এমন প্রোগ্রামারদের প্রতিনিধিত্ব করছে, এবং আমাদের কাছে সংখ্যার একটি তালিকাও রয়েছে, কনভেনশন 1 একটি প্রোগ্রামারকে প্রতিনিধিত্ব করে এবং 0 প্রতিনিধিত্বকারী স্থান। এখন শর্ত হল কোন দুই প্রোগ্রামার একে অপরের পাশে বসতে পারবে না, আমাদের সব n প্রোগ্রামার কনভেনশনে প্রবেশ করতে পারবে কি না তা পরীক্ষা করতে হবে।
সুতরাং, যদি ইনপুটটি n =2, কনভেনশন =[0, 0, 1, 0, 0, 0, 1] এর মত হয়, তাহলে আউটপুট হবে True
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- এর জন্য 0 থেকে রূপান্তরের আকারের মধ্যে, করুন
- a:=0 যখন i-1 <0 অন্যথায় i-1
- b:=রূপান্তর -1 এর আকার যখন i+1>=রূপান্তরের আকার অন্যথায় i+1
- যদি conv[i] 0 এর মত হয় এবং conv[a] 0 এর মত হয় এবং conv[b] 0 এর মত হয়, তাহলে
- রূপ[i]:=1
- n :=n - 1
- সত্য ফেরত দিন যখন n <=0, অন্যথায় 0।
উদাহরণ
class Solution: def solve(self, n, conv): for i in range(len(conv)): a=0 if i-1<0 else i-1 b=len(conv)-1 if i+1>=len(conv) else i+1 if conv[i]==0 and conv[a]==0 and conv[b]==0: conv[i]=1 n-=1 return n<=0 ob = Solution() n = 2 convention = [0, 0, 1, 0, 0, 0, 1] print(ob.solve(n, convention))
ইনপুট
2, [0, 0, 1, 0, 0, 0, 1]
আউটপুট
True