ধরুন আমাদের দুটি ছোট হাতের স্ট্রিং 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