কম্পিউটার টিউটোরিয়াল

পাইথনে শব্দ তালিকা থেকে সর্বোচ্চ আকারের অ্যানাগ্রাম গোষ্ঠী খুঁজে বের করার প্রোগ্রাম


ধরা যাক 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
  1. পাইথন প্রোগ্রাম লিস্টে সবচেয়ে ছোট সংখ্যা বের করা

  2. পাইথন প্রোগ্রাম অ্যারেতে সবচেয়ে বড় এলিমেন্ট বের করা

  3. পাইথনে লিস্ট থেকে সর্বোচ্চ সংখ্যা বের করা

  4. পাইথনে লিস্ট থেকে N বড় এলিমেন্ট বের করা