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

পাইথনে প্রথম বা শেষ ক্যারেক্টার মুছে যেকোনো জায়গায় ইনসার্ট করে টার্গেট স্ট্রিং তৈরির প্রোগ্রাম


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

উদাহরণস্বরূপ, s = "zyvxw", t = "vwxyz" হলে আউটপুট হবে ৩।

সমাধানের ধাপসমূহ

  • ans := s-এর আকার, n := s-এর আকার
  • i = 0 থেকে n-1 পর্যন্ত,
    • k := 0
    • j = i থেকে n-1 পর্যন্ত,
      • k = k থেকে t-এর আকার পর্যন্ত,
        • যদি s[j] == t[k], তবে
          • ans := min(ans, n - (j - i + 1))
          • লুপ থেকে বের হোন
      • k := k + 1
  • ans ফেরত দিন

উদাহরণ

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. পাইথনে স্ট্রিং থেকে nth ক্যারেক্টার রিমুভ করা

  3. পাইথন প্রোগ্রাম: স্ট্রিং থেকে nth ক্যারেক্টার মুছে ফেলা

  4. পাইথন প্রোগ্রাম: স্ট্রিং থেকে n-তম ক্যারেক্টার সরিয়ে ফেলা