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

পাইথনে শর্টেস্ট কমপ্লিটিং ওয়ার্ড (Shortest Completing Word)


সমস্যা বিবরণ

একটি লাইসেন্স প্লেট স্ট্রিং এবং শব্দের লিস্ট দেওয়া থাকে। লাইসেন্স প্লেটে থাকা সব অক্ষর (কেস-ইনসেনসিটিভ, ডিজিট/স্পেস বাদ) সমाहিত করে এমন সবচেয়ে ছোট শব্দ খুঁজে বের করুন। একাধিক হলে প্রথমেটা রিটার্ন করুন।

উদাহরণ

licensePlate = "1s3 PSt", words = ["step","steps","stripe","stepple"] → আউটপুট: "steps"

লাইসেন্স প্লেটের অক্ষর: s, p, s, t (২টি s, ১টি p, ১টি t)। "steps"-এ এগুলো আছে এবং এটি সবচেয়ে ছোট।

এলগরিদম

  1. লাইসেন্স প্লেট থেকে শুধু অক্ষরগুলো বের করে ছোট হাতের (lowercase) রেখুন।
  2. প্রতিটি শব্দের জন্য চেক করুন যে লাইসেন্স প্লেটের প্রতিটি অক্ষর उतनी বার আছে কিনা (word.count(c) >= required.count(c))।
  3. বৈধ শব্দগুলো থেকে সবচেয়ে ছোটটি (min(valid, key=len)) রিটার্ন করুন।

পাইথন বাস্তবায়ন

class Solution:
    def shortestCompletingWord(self, licensePlate, words):
        import string
        letters = [c.lower() for c in licensePlate if c.lower() in string.ascii_lowercase]
        valid = []
        for w in words:
            if all(letters.count(c) <= w.count(c) for c in set(letters)):
                valid.append(w)
        return min(valid, key=len)

ob = Solution()
print(ob.shortestCompletingWord("1s3 PSt", ["step","steps","stripe","stepple"]))  # steps

ইনপুট / আউটপুট

ইনপুট: "1s3 PSt", ["step","steps","stripe","stepple"]
আউটপুট: steps
  1. Python-এ একটি দেওয়া শব্দ কিওয়ার্ড কিনা তা চেক করার পদ্ধতি

  2. পাইথন Tkinter ব্যবহার করে শব্দের ডিকশনারি অ্যাপ তৈরি করা

  3. পাইথন ব্যবহার করে ওয়ার্ড ক্লাউড (Word Cloud) তৈরি করা

  4. পাইথনে সিকোয়েন্স থেকে দ্বিতীয় সর্বাধিক রিপিট হওয়া ওয়ার্ড বের করা