Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra xem chuỗi cuối cùng có thể được hình thành bằng cách sử dụng hai chuỗi khác hay không trong Python

Giả sử chúng ta có hai chuỗi s, t và một chuỗi r khác, chúng ta phải kiểm tra xem có cách nào để lấy r bằng cách hợp nhất các ký tự theo thứ tự từ s và t hay không.

Vì vậy, nếu đầu vào giống như s ="xyz" t ="mno" r ="xymnoz", thì đầu ra sẽ là True, vì xymnoz có thể được hình thành bằng cách xen kẽ xyz và mno.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • Định nghĩa một hàm giải quyết (). Điều này sẽ mất s, t, r

  • nếu s, t và r trống thì

    • trả về True

      • nếu r trống thì

        • trả về Sai

  • nếu s trống, thì

    • trả về true khi t giống với r, ngược lại là false

  • nếu không t là khác 0, thì

    • return s giống với r

  • nếu s [0] giống với r [0] thì

    • nếu giải quyết (s [từ chỉ mục 1 đến cuối], t, r [từ chỉ mục 1 đến cuối]) là true, thì

      • trả về True

  • nếu t [0] giống với r [0] thì

    • nếu giải quyết (s, t [từ chỉ mục 1 đến cuối], r [từ chỉ mục 1 đến cuối]) là true, thì

      • trả về True

  • trả về Sai

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

"xyz", "mno", "xymnoz"

Đầu ra

True