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

পাইথনে ক্রমাগত এলিমেন্টের সর্বোচ্চ গুণফল


পাইথনে ডেটা ম্যানিপুলেশনের জন্য চমৎকার লাইব্রেরি রয়েছে। আমাদের একটি বড় স্ট্রিংয়ের অংশবিশেষ হিসেবে থাকা দুটি ক্রমাগত সংখ্যার সর্বোচ্চ গুণফল বের করার প্রয়োজন হতে পারে। এই লেখায় আমরা তা করার উপায় দেখব।

zip এবং max ব্যবহার করে

স্ট্রিংকে লিস্টে রূপান্তর করি। তারপর স্লাইসিংয়ের সাহায্যে ক্রমাগত এলিমেন্ট থেকে জোড়া তৈরি করি। * প্রয়োগ করে জোড়াটি গুণ করি এবং প্রতিটি জোড়ার গুণফল থেকে max মান বের করি।

উদাহরণ

Astring = '5238521'
# প্রদত্ত স্ট্রিং
print("Given String : ",Astring)
# লিস্টে রূপান্তর
Astring = list(Astring)
print("String converted to list:\n",Astring)
# max() ব্যবহার
res = max(int(a) * int(b) for a, b in zip(Astring, Astring[1:]))
# ফলাফল
print("The maximum consecutive product is : " ,res)

আউটপুট

উপরোক্ত কোডটি চালালে নিচের ফলাফল পাওয়া যায় −

Given String : 5238521 String converted to list: ['5', '2', '3', '8', '5', '2', '1'] The maximum consecutive product is : 40

map এবং max ব্যবহার করে

আমরা উপরের মতোই পদ্ধতি নিব। কিন্তু map ফাংশন ব্যবহার করে ক্রমাগত পূর্ণসংখ্যা জোড়া জেনারেট করব। তারপর operator মডিউলের mul ফাংশন ব্যবহার করে এই জোড়ার সংখ্যাগুলোক গুণ করব। অবশেষে max ফাংশন প্রয়োগ করে ফলাফলের সর্বোচ্চ মান পাব।

উদাহরণ

from operator import mul
Astring = '5238521'
# প্রদত্ত স্ট্রিং
print("Given String : ",Astring)
# লিস্টে রূপান্তর
Astring = list(Astring)
print("String converted to list:\n",Astring)
# max() ব্যবহার
res = max(map(mul, map(int, Astring), map(int, Astring[1:])))
# ফলাফল
print("The maximum consecutive product is : " ,res)

আউটপুট

উপরোক্ত কোডটি চালালে নিচের ফলাফল পাওয়া যায় −

Given String : 5238521 String converted to list: ['5', '2', '3', '8', '5', '2', '1'] The maximum consecutive product is : 40

  1. পাইথনে স্ট্রিং center() মেথড

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

  3. পাইথনে Maximum Product Subarray (সর্বাধিক গুণফলযুক্ত সাবঅ্যারে)

  4. পাইথনে স্ট্রিংয়ের সর্বোচ্চ দৈর্ঘ্য কত