ধরা যাক words নামক একটি স্ট্রিং তালিকা আছে, সব অ্যানাগ্রাম একসাথে গ্রুপ করে সবচেয়ে বড় গোষ্ঠীর আকার ফেরত দিন।
উদাহরণ: words = ["xy", "yx", "xyz", "zyx", "yzx", "wwwww"] হলে আউটপুট 3, কারণ ["xyz", "zyx", "yzx"] সবচেয়ে বড় গোষ্ঠী।
সমাধানের ধাপসমূহ
- lookup := খালি ম্যাপ, res := 0
- প্রতিটি শব্দ i-এর জন্য words-এ:
- p := i-কে লেক্সিকোগ্রাফিক্যালি সর্ট করুন।
- lookup[p] = lookup.get(p, 0) + 1
- res = max(res, lookup[p])
- res ফেরত দিন।
উদাহরণ কোড
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