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

পাইথনে Map ফাংশন ব্যবহার করে বাইনারি স্ট্রিং-এ সর্বাধিক দৈর্ঘ্যের連続 ১ গুচ্ছ বের করা


কখনও কখনও সংখ্যাগুলোর বাইনারি রিপ্রেজেন্টেশন নিয়ে কাজ করার সময় আমাদের জানতে হয় সেটিতে কতগুলো র होकर ১ আছে। এই আর্টিকেলে দুটি পদ্ধতি দেখানো হয়েছে কীভাবে সেটি বের করা যায়।

Split এবং Map ব্যবহার করে

পাইথনের split ফাংশন দিয়ে দেওয়া স্ট্রিংকে একাধিক স্ট্রিংয়ে ভাগ করা যায়। আমরা এটিকে ০ দিয়ে স্প্লিট করব এবং map ফাংশন ব্যবহার করে স্প্লিট করা অংশগুলোর মধ্যে সর্বাধিক দৈর্ঘ্য বের করব।

উদাহরণ

data = '11110000111110000011111010101010101011111111'
def Max_len_cons_1(data):
    print("Maximum Number of consecutive one's: ", max(map(len, data.split('0'))))
Max_len_cons_1(data)

আউটপুট

উপরোক্ত কোডটি রান করলে নিচের ফলাফল পাবেন:

Maximum Number of consecutive one's: 8

রেগুলার এক্সপ্রেশন ব্যবহার করে

পাইথনের re মডিউলও ব্যবহার করে সর্বাধিক কনsekutিভ ১ গুনতে পারি। এখানে আমরা 1+ প্যাটার্ন খুঁজব যা এক বা অধিক ১ থাকাকে ইঙ্গিত করে। তারপর সেই প্যাটার্নগুলোর মধ্যে সর্বাধিক দৈর্ঘ্য বের করব।

উদাহরণ

data = '11110000111110010011'
import re
the_ones = re.findall(r"1+", data)
print("The blocks of one's: ", the_ones)
print("Maximum Number of consecutive one's =", len(max(the_ones, key=len)))

আউটপুট

উপরোক্ত কোডটি রান করলে নিচের ফলাফল পাবেন:

The blocks of one's: ['1111', '11111', '1', '11']
Maximum Number of consecutive one's = 5
  1. পাইথনে DFA ব্যবহার করে বাইনারি স্ট্রিং ৩ দিয়ে বিভাজ্য কিনা

  2. পাইথন - int() ফাংশন

  3. পাইথনে map() ফাংশন ব্যবহার করে 2D অ্যারে যোগফল বের করা

  4. কনসিকিউটিভ ১ ছাড়া বাইনারি স্ট্রিংয়ের সংখ্যা গণনা করার পাইথন প্রোগ্রাম