ধরুন আমাদের কাছে স্ট্রিং শব্দের একটি তালিকা আছে, আমাদেরকে সমস্ত অ্যানাগ্রামকে একত্রে গোষ্ঠীবদ্ধ করতে হবে এবং বৃহত্তম গোষ্ঠীর আকার দিতে হবে৷
সুতরাং, যদি ইনপুট শব্দের মত হয় =["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