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

পাইথনে দুটি স্ট্রিং ইন্টারলিভ করে তৃতীয় স্ট্রিং তৈরি করা যায় কিনা চেক করা

দুটি স্ট্রিং s, t এবং একটি টার্গেট স্ট্রিং r দেওয়া আছে। s এবং t-এর অক্ষরগুলোর আশেপাশের ক্রম (Order) বজায় রেখে যদি r তৈরি করা সম্ভব হয় কিনা তা চেক করতে হবে।

উদাহরণ: s = "xyz", t = "mno", r = "xymnoz" → আউটপুট True।

সমাধানের ধাপসমূহ (রিকার্সিভ / DP)

  1. বেস কেস: তিনটিই খালি হলে True। শুধু r খালি হলে False।

  2. s খালি হলে t == r চেক করুন। t খালি হলে s == r চেক করুন।

  3. যদি s[0] == r[0] হয়, তবে solve(s[1:], t, r[1:]) কল করুন।

  4. যদি t[0] == r[0] হয়, তবে solve(s, t[1:], r[1:]) কল করুন।

  5. উপরের দুটোই না হলে False রিটার্ন করুন।

পাইথন কোড উদাহরণ

class Solution:
    def solve(self, s, t, r):
        if not s and not t and not r:
            return True
        if not r:
            return False
        if not s:
            return t == r
        if not t:
            return s == r
        if s[0] == r[0]:
            if self.solve(s[1:], t, r[1:]):
                return True
        if t[0] == r[0]:
            if self.solve(s, t[1:], r[1:]):
                return True
        return False

ob = Solution()
s = "xyz"
t = "mno"
r = "xymnoz"
print(ob.solve(s, t, r))

ইনপুট

"xyz", "mno", "xymnoz"

আউটপুট

True
  1. পাইথনে দুটি ট্রি নোড স왪 করায় সমান হয় কিনা যাচাই করা (Flip Equivalent Trees)

  2. পাইথনে প্যালিনড্রোম স্ট্রিং চেক করা

  3. পাইথন প্রোগ্রাম: স্ট্রিং হেটেরোগ্রাম (Heterogram) কিনা চেক করা

  4. Python-এ স্ট্রিং প্যালিনড্রোম (Palindrome) কিনা চেক করা