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

পাইথনে টার্গেট স্ট্রিং তৈরির জন্য সোর্স স্ট্রিং-এর ন্যূনতম সাবসিকোয়েন্স সংখ্যা


দুটি স্ট্রিং source এবং target দেওয়া আছে। source-এর সাবসিকোয়েন্সগুলো কনক্যাটেনেট করে target বানাতে হবে। ন্যূনতম কতটি সাবসিকোয়েন্স লাগবে তা বের করুন। না পারলে -1 রিটার্ন করুন।

উদাহরণ: source = "xyz", target = "xyzyzz" → আউটপুট ৩ ("xyz" + "yz" + "z")।

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

  • s_size, t_size লেনথ।
  • concat_count = 0, target_idx = 0।
  • while target_idx < t_size: source_idx = 0, temp_index = target_idx।
  • সোর্স ও টার্গেট স্ক্যান করে ম্যাচ করান।
  • যদি temp_index == target_idx হয় তবে -1 রিটার্ন করুন।
  • concat_count++।
  • শেষে concat_count রিটার্ন করুন।

উদাহরণ

class Solution:
    def solve(self, s, t):
        s_size, t_size = len(s), len(t)
        concat_count = 0
        target_idx = 0
        while target_idx < t_size:
            source_idx = 0
            temp_index = target_idx
            while source_idx < s_size and target_idx < t_size:
                if s[source_idx] == t[target_idx]:
                    target_idx += 1
                source_idx += 1
            if temp_index == target_idx:
                return -1
            concat_count += 1
        return concat_count

ob = Solution()
source = "xyz"
target = "xyzyzz"
print(ob.solve(source, target))

ইনপুট

"xyz", "xyzyzz"

আউটপুট

3
  1. পাইথনে রঙ মার্জ করলে অবশিষ্ট ন্যূনতম রঙের সংখ্যা বের করার প্রোগ্রাম

  2. পাইথনে 'A' গুলো 'B' গুলোর আগে আনতে ন্যূনতম ক্যারেক্টার ডিলিট করার প্রোগ্রাম

  3. পাইথনে ম্যাট্রিক্সে ডেস্টিনেশন পৌঁছাতে ন্যূনতম উচ্চতা বৃদ্ধি খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে একটি সংখ্যার গুণনীয়গুলোর ন্যূনতম যোগফল বের করার প্রোগ্রাম