ধরুন আমাদের কাছে স্ট্রিং শব্দের একটি তালিকা আছে, আমাদেরকে সমস্ত অ্যানাগ্রামকে একত্রে গোষ্ঠীবদ্ধ করতে হবে এবং বৃহত্তম গোষ্ঠীর আকার দিতে হবে৷
সুতরাং, যদি ইনপুট শব্দের মত হয় =["xy", "yx", "xyz", "zyx", "yzx", "wwwww"], তাহলে আউটপুট হবে 3, ["xyz", "zyx" হিসাবে , "yzx"] হল বৃহত্তম গ্রুপিং৷
৷এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
সন্ধান করুন :=একটি নতুন মানচিত্র, প্রাথমিকভাবে খালি
-
res :=0
-
প্রতিটি i শব্দে, কর
-
p :=লেক্সিকোগ্রাফিক্যাল উপায়ে সাজান
-
যদি p লুকআপে থাকে, তাহলে সংখ্যা বাড়ান, অন্যথায় 1
-
res :=সর্বাধিক রেস এবং লুকআপ[p]
-
-
রিটার্ন রিটার্ন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution:
def solve(self, words):
lookup = {}
res = 0
for i in words:
p = "".join(sorted(i))
lookup[p] = lookup.get(p, 0) + 1
res = max(res, lookup[p])
return res
ob = Solution()
words = ["xy", "yx", "xyz", "zyx", "yzx", "wwwww"]
print(ob.solve(words)) ইনপুট
["xy", "yx", "xyz", "zyx", "yzx", "wwwww"]
আউটপুট
3