কম্পিউটার

পাইথনে প্রদত্ত স্ট্রিং-এ ন্যূনতম সংখ্যক অদলবদল সহ 1s-কে গোষ্ঠীভুক্ত করার প্রোগ্রাম


ধরুন আমাদের একটি বাইনারি স্ট্রিং input_str দেওয়া হয়েছে যাতে 0s এবং 1s রয়েছে। আমাদের কাজ হল প্রদত্ত স্ট্রিং-এ 1s অদলবদল করে 0 এবং 1 গ্রুপ করা। আমাদের ন্যূনতম সংখ্যক সোয়াপ অপারেশন করতে হবে, এবং আমাদের সেই মানটি ফেরত দিতে হবে। একটি জিনিস মনে রাখতে হবে, আমরা শুধুমাত্র সন্নিহিত মানগুলিকে অদলবদল করতে পারি।

সুতরাং, যদি ইনপুটটি হয় input_str =10110101, তাহলে আউটপুট হবে 4

অদলবদল হবে নিম্নলিখিত −

এর মত
10110101->01110101->01111001->01111010->01111100

অদলবদলের মোট সংখ্যা:4.

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • এক :=একটি নতুন তালিকা যেখানে ইনপুট_স্ট্রের অবস্থান রয়েছে যেখানে 1s অবস্থিত রয়েছে
  • মধ্য :=ফ্লোর মান (এক/২ এর আকার)
  • res :=0
  • আমি 0 থেকে এক আকারের রেঞ্জের জন্য,
      করুন
    • res :=res + |one[mid] - one[i]| - |মধ্য - i|
  • যদি res <0 হয়, তাহলে
    • রিটার্ন 0
  • অন্যথায়,
    • রিটার্ন রিটার্ন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

def solve(input_string):
   one = [i for i in range(len(input_string)) if input_string[i] == "1"]
   mid = len(one) // 2
   res = 0
   for i in range(len(one)):
      res += abs(one[mid] - one[i]) - abs(mid - i)
   return 0 if res < 0 else res

print(solve('10110101'))

ইনপুট

'10110101'

আউটপুট

4

  1. পাইথন প্রোগ্রাম একটি প্রদত্ত স্ট্রিং এর সেট ব্যবহার করে স্বর সংখ্যা গণনা করার জন্য

  2. প্রদত্ত স্ট্রিংটি স্বরবর্ণ প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  3. প্রদত্ত পরিসরে বিজোড় ফ্যাক্টর সহ উপাদানের সংখ্যার জন্য পাইথন প্রোগ্রাম

  4. প্রদত্ত স্ট্রিং প্যানগ্রাম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম