ধরুন আমরা একটি স্ট্রিং 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