কম্পিউটার

প্রথম বা শেষ থেকে সরিয়ে আবার পাইথনে ঢুকিয়ে লক্ষ্য তৈরি করার জন্য প্রোগ্রাম


ধরুন আমাদের দুটি স্ট্রিং S এবং T আছে এবং তারা একে অপরের পারমুটেশন। ধরুন এমন একটি অপারেশন আছে যেখানে আমরা S-এর প্রথম বা শেষ অক্ষরটি সরিয়ে ফেলি এবং স্ট্রিং-এর যেকোনো জায়গায় এটি সন্নিবেশ করি। তারপর S কে T এ রূপান্তর করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক ক্রিয়াকলাপ খুঁজুন।

সুতরাং, যদি ইনপুটটি s ="zyvxw" t ="vwxyz" এর মতো হয়, তাহলে আউটপুট হবে 3, যেমন এই অপারেশনগুলি হল:"w" সরান এবং "zyvwx" পেতে "v" এর পরে এটি প্রবেশ করান "z" সরান। এবং "yvwxz" পেতে "x" এর পরে ঢোকান "y" সরান এবং "vwxyz" পেতে "x" এর পরে ঢোকান।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • উত্তর :=s এর আকার, n :=s এর আকার

  • 0 থেকে n-1 রেঞ্জের জন্য, করুন

    • k :=0

    • i থেকে n-1 রেঞ্জের মধ্যে j এর জন্য, করুন

      • k এর জন্য k থেকে t এর আকারের মধ্যে, করুন

        • যদি s[j] t[k] এর মত হয়, তাহলে

          • উত্তর :=সর্বনিম্ন উত্তর এবং n - (j - i + 1)

          • লুপ থেকে বেরিয়ে আসুন

      • k :=k + 1

    • উত্তর ফেরত দিন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class Solution:
   def solve(self, s, t):
      ans = n = len(s)

      for i in range(n):
         k = 0
         for j in range(i, n):
            for k in range(k, len(t)):
               if s[j] == t[k]:
                  ans = min(ans, n - (j - i + 1))
                  break
            k += 1

      return ans

ob = Solution()
s = "zyvxw"
t = "vwxyz"
print(ob.solve(s, t))

ইনপুট

"zyvxw", "vwxyz"

আউটপুট

5

  1. পাইথনে প্রথম থেকে শেষ নোড পর্যন্ত সীমাবদ্ধ পথের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রামের একটি স্ট্রিং থেকে nম অক্ষর সরানো হচ্ছে

  3. একটি স্ট্রিং থেকে nম অক্ষর অপসারণের জন্য পাইথন প্রোগ্রাম

  4. একটি স্ট্রিং থেকে n-ম অক্ষর অপসারণের জন্য পাইথন প্রোগ্রাম?