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

পাইথনে দেয়া অক্ষর থেকে সর্বোচ্চ দৈর্ঘ্যের শব্দ বের করার প্রোগ্রাম


একটি শব্দের তালিকা এবং অক্ষরের স্ট্রিং letters দেওয়া আছে (তবে '*' যেকোনো অক্ষর মэтচ করতে পারে)। দেয়া অক্ষরগুলো ব্যবহার করে বানানো যাবে এমন সবচেয়ে বড় শব্দের দৈর্ঘ্য বের করুন।

উদাহরণ: words = ["prince","rice","price","limit","hello"], letters="*r**ce*" → আউটপুট ৬ ("prince")।

সমাধানের ধাপগুলো:

  • Counter দিয়ে letters এর ফ্রিকোয়েন্সি নিন।
  • প্রতিটি শব্দের জন্য valid() চেক করুন: প্রয়োজনীয় অতিরিক্ত অক্ষর <= letters-এ '*' এর সংখ্যা।
  • বৈধ শব্দগুলোর মধ্যে সর্বোচ্চ দৈর্ঘ্য রিটার্ন করুন।

উদাহরণ

from collections import Counter
class Solution:
    def solve(self, words, letters):
        has = Counter(letters)
        def valid(s):
            need = Counter(s)
            extra = sum(max(0, need[char] - has[char]) for char in need)
            return extra <= has["*"]
        return max(len(word) for word in words if valid(word))

ob = Solution()
words = ["prince", "rice", "price", "limit", "hello"]
letters = "*r**ce*"
print(ob.solve(words, letters))

ইনপুট

["prince", "rice", "price", "limit", "hello"], "*r**ce*"

আউটপুট

6
  1. পাইথনে লংগেস্ট ডিমিনিশিং ওয়ার্ড চেইন (শব্দ শৃঙ্খল) দৈর্ঘ্য বের করা

  2. পাইথনে দিয়ে गये শর্তে সর্বোচ্চ দৈর্ঘ্যের সাবলিস্ট খুঁজে বের করার প্রোগ্রাম

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

  4. পাইথনে দিয়ে गये অক্ষरों থেকে বানানো সবচেয়ে বড় শব্দের দৈর্ঘ্য বের করার প্রোগ্রাম