কম্পিউটার

পাইথনে অন্য দুটি স্ট্রিং ব্যবহার করে চূড়ান্ত স্ট্রিং তৈরি করা যায় কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম


ধরুন আমাদের দুটি স্ট্রিং আছে s, t, এবং আরেকটি স্ট্রিং r আমাদের চেক করতে হবে s এবং t থেকে ক্রম অনুসারে অক্ষর মার্জ করে r পাওয়ার কোন উপায় আছে কিনা।

সুতরাং, যদি ইনপুটটি s ="xyz" t ="mno" r ="xymnoz" এর মত হয়, তাহলে আউটপুটটি True হবে, কারণ xyz এবং mno কে আন্তঃলিভ করে xymnoz গঠিত হতে পারে।

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

  • একটি ফাংশন সংজ্ঞায়িত করুন solve()। এটি s, t, r

    লাগবে
  • যদি s, t এবং r খালি হয়, তাহলে

    • রিটার্ন ট্রু

      • যদি r খালি হয়, তাহলে

        • রিটার্ন ফলস

  • যদি s খালি হয়, তাহলে

    • সত্য ফেরত দিন যখন t একই হয় r, অন্যথায় মিথ্যা

  • যদি t non-zero হয়, তাহলে

    • রিটার্ন s r

      এর মতই
  • যদি s[0] r[0] এর মত হয়, তাহলে

    • যদি সমাধান(s[সূচী 1 থেকে শেষ পর্যন্ত], t, r[সূচী 1 থেকে শেষ পর্যন্ত]) সত্য হয়, তাহলে

      • রিটার্ন ট্রু

  • যদি t[0] r[0] এর মত হয়, তাহলে

    • যদি সমাধান(গুলি, t[সূচী 1 থেকে শেষ পর্যন্ত], r[সূচী 1 থেকে শেষ পর্যন্ত]) সত্য হয়, তাহলে

      • রিটার্ন ট্রু

  • রিটার্ন ফলস

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

উদাহরণ

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. পাইথনে নোড অদলবদল করে দুটি গাছ তৈরি করা যায় কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. একটি স্ট্রিং প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  3. একটি প্রদত্ত স্ট্রিং Heterogram কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  4. একটি স্ট্রিং প্যালিনড্রোম কিনা তা পাইথন ব্যবহার করছে কিনা তা কীভাবে পরীক্ষা করবেন?