কম্পিউটার

পাইথনে সমস্ত সাবস্ট্রিংয়ের সৌন্দর্যের যোগফল খুঁজে বের করার জন্য প্রোগ্রাম


ধরুন আমরা একটি স্ট্রিং s আছে. আমাদের এর সমস্ত উপ-স্ট্রিংগুলির সৌন্দর্যের যোগফল খুঁজে বের করতে হবে। একটি স্ট্রিং এর সৌন্দর্য আসলে সবচেয়ে ঘন ঘন এবং কম ঘন ঘন অক্ষর মধ্যে ফ্রিকোয়েন্সি পার্থক্য. তাই যদি স্ট্রিংটি "abaacc" হয়, তাহলে এর ফ্রিকোয়েন্সি 3 - 1 =2।

সুতরাং, যদি ইনপুটটি s ="xxyzy" এর মত হয়, তাহলে আউটপুট হবে 5 কারণ নন-জিরো বিউটি সহ সাবস্ট্রিংগুলি হল ["xxy","xxyz","xxyzy","xyzy","yzy"], প্রতিটিরই সৌন্দর্যের মান ১।

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

  • res:=0

  • i এর জন্য 0 থেকে s - 1 এর আকারের মধ্যে, করুন

    • j এর জন্য i+2 থেকে s - 1 এর মাপ, করুন

      • c:=সূচী i থেকে j

        পর্যন্ত s এর সাবস্ট্রিংয়ের অক্ষর ফ্রিকোয়েন্সি ধারণকারী একটি মানচিত্র
      • v:=c

        এর সমস্ত ফ্রিকোয়েন্সি মানের তালিকা
      • res :=res +(সর্বোচ্চ v - সর্বনিম্ন v)

  • রিটার্ন রিটার্ন

উদাহরণ

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

from collections import Counter

def solve(s):
   res=0
   for i in range(len(s)):
      for j in range(i+2,len(s)):
         c=Counter(s[i:j+1])
         v=c.values()
         res+=(max(v)-min(v))
   return res

s = "xxyzy"
print(solve(s))

ইনপুট

"xxyzy"

আউটপুট

5

  1. পাইথন প্রোগ্রামে অ্যারের সমষ্টি খুঁজুন

  2. পাইথন প্রোগ্রাম একটি তালিকার ক্রমবর্ধমান যোগফল খুঁজে বের করতে

  3. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকার সমস্ত জোড়ার মধ্যে পরম পার্থক্যের যোগফল খুঁজে বের করতে