কম্পিউটার

পাইথনে একটি শব্দ তালিকা থেকে অ্যানাগ্রামের বৃহত্তম গ্রুপিং খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে স্ট্রিং শব্দের একটি তালিকা আছে, আমাদেরকে সমস্ত অ্যানাগ্রামকে একত্রে গোষ্ঠীবদ্ধ করতে হবে এবং বৃহত্তম গোষ্ঠীর আকার দিতে হবে৷

সুতরাং, যদি ইনপুট শব্দের মত হয় =["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

  1. পাইথন প্রোগ্রাম একটি তালিকার ক্ষুদ্রতম সংখ্যা খুঁজে বের করতে

  2. পাইথন প্রোগ্রাম একটি অ্যারের বৃহত্তম উপাদান খুঁজে বের করতে

  3. পাইথন প্রোগ্রাম একটি তালিকায় সবচেয়ে বড় সংখ্যা খুঁজে বের করতে

  4. একটি তালিকা থেকে N বৃহত্তম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম