ধরুন আমাদের দুটি ছোট হাতের স্ট্রিং S এবং T আছে, আমাদের লংস্ট্যানাগ্রাম পরবর্তী দৈর্ঘ্য খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি S ="helloworld", T ="hellorld" এর মত হয়, তাহলে আউটপুট হবে 8
-
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
c :=একটি নতুন মানচিত্র, d :=একটি নতুন মানচিত্র
-
আমি 0 থেকে a এর আকারের মধ্যে, কর
-
যদি a[i] c তে, তাহলে
-
c[a[i]] :=c[a[i]] + 1
-
-
অন্যথায়,
-
c[a[i]] :=1
-
-
-
i এর জন্য 0 থেকে b এর আকারের মধ্যে, do
-
যদি b[i] d তে থাকে, তাহলে
-
d[b[i]] :=d[b[i]] + 1
-
-
অন্যথায়,
-
d[b[i]] :=1
-
-
-
res :=0
-
প্রতিটি ch-এর জন্য c, do
-
যদি d[ch]> 0 হয়, তাহলে
-
res :=res + সর্বনিম্ন c[ch] এবং d[ch]
-
-
-
রিটার্ন রিটার্ন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, a, b): c, d = {}, {} for i in range(len(a)): if a[i] in c: c[a[i]] += 1 else: c[a[i]] = 1 for i in range(len(b)): if b[i] in d: d[b[i]] += 1 else: d[b[i]] = 1 res = 0 for ch in c: if d.get(ch, 0) > 0: res += min(c[ch], d[ch]) return res ob = Solution() S = "helloworld" T = "hellorld" print(ob.solve(S, T))
ইনপুট
S = "helloworld", T = "hellorld"
আউটপুট
1