কম্পিউটার টিউটোরিয়াল

পাইথনে বাইনারি প্রিফিক্স ৫ দিয়ে বিভাজ্য কিনা চেক

মান লেই আমাদের একটি অ্যারে A আছে ০ এবং ১ দিয়ে গঠিত, N[i] কে i-তম সাবঅ্যারে ধরা হয় A[0] থেকে A[i] পর্যন্ত যেটা বাইনারি নম্বর হিসেবে ইন্টারপ্রেট করা হয়। আমাদের একটি বুলিয়ান আন্সার লিস্ট বের করতে হবে, যেখানে answer[i] হবে true যদি এবং কেবল যদি N[i] ৫ দিয়ে বিভাজ্য হয়।

সেজন্য, যদি ইনপুট হয় [0,1,1,1,1,1], তবে আউটপুট হবে [true,false,false,false,true,false]

এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব −

  • length := A-এর সাইজ
  • ans := length সাইজের একটি অ্যারে, false দিয়ে ফিল করা
  • number := A-এর প্রতিটি এলিমেন্ট কনক্যাটেনেট করে একটি বাইনারি ভ্যালু
  • i = 0 থেকে length পর্যন্ত লুপ
    • যদি number mod 5 == 0 হয়, তবে
      • ans[length-i-1] := True
    • number := number / 2
  • ans রিটার্ন

বেস্টার বোঝার জন্য নিচের ইম্প্লিমেন্টেশন দেখুন −

উদাহরণ

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]
  1. পাইথনে বাইনারি ট্রির ডায়ামিটার

  2. পাইথনে বাইনারি ট্রি ইনভার্ট (Invert Binary Tree)

  3. পাইথন বাইনারি সিকোয়েন্স টাইপস (Binary Sequence Types)

  4. পাইথনে স্ট্রিংকে বাইনারি ফরম্যাটে রূপান্তর করা