ধরুন আমাদের 0s এবং 1s এর একটি অ্যারে আছে, বিবেচনা করুন N[i] হল i-তম সাবয়ারে A[0] থেকে A[i] পর্যন্ত একটি বাইনারি সংখ্যা হিসাবে ব্যাখ্যা করা হয়েছে। আমাদের বুলিয়ান উত্তরগুলির একটি তালিকা খুঁজে বের করতে হবে, যেখানে উত্তর[i] সত্য এবং শুধুমাত্র যদি N[i] 5 দ্বারা বিভাজ্য হয়।
সুতরাং, যদি ইনপুটটি [0,1,1,1,1,1] এর মত হয়, তাহলে আউটপুট হবে [সত্য, মিথ্যা, মিথ্যা, মিথ্যা, সত্য, মিথ্যা]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- দৈর্ঘ্য :=A এর আকার
- উত্তর:=আকারের দৈর্ঘ্যের একটি অ্যারে তৈরি করুন এবং মিথ্যা দিয়ে পূরণ করুন
- সংখ্যা:=A থেকে প্রতিটি উপাদানকে সংযুক্ত করে একটি বাইনারি মান
- আমি 0 থেকে দৈর্ঘ্য রেঞ্জের জন্য, কর
- যদি মোড 5 নম্বরটি 0 এর মত হয়, তাহলে
- উত্তর[দৈর্ঘ্য-i-1] :=সত্য
- সংখ্যা:=সংখ্যা / 2
- যদি মোড 5 নম্বরটি 0 এর মত হয়, তাহলে
- উত্তর ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def prefixesDivBy5(self, A): length=len(A) ans=[False]*length number=int("".join(map(str,A)),2) for i in range(length): if number%5==0: ans[length-i-1]=True number=number>>1 return ans ob = Solution() print(ob.prefixesDivBy5([0,1,1,1,1,1]))
ইনপুট
[0,1,1,1,1,1]
আউটপুট
[True, False, False, False, True, False]