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