用于检查最终字符串是否可以在Python中使用其他两个字符串组成的程序

假设我们有两个字符串s,t和另一个字符串r,我们必须检查是否有通过按s和t的顺序合并字符来获取r的方法。

因此,如果输入像s =“ xyz” t =“ mno” r =“ xymnoz”,则输出将为True,因为xymnoz可以通过交织xyz和mno来形成。

为了解决这个问题,我们将遵循以下步骤-

  • 定义一个功能solve()。这将花费s,t,r

  • 如果s,t和r为空,则

    • 如果r为空,则

    • 返回False

    • 返回True

    • 如果s为空,则

      • 当t与r相同时返回true,否则返回false

    • 如果不是t不为零,则

      • return s与r相同

    • 如果s [0]与r [0]相同,则

      • 返回True

      • 如果solve(s [从索引1到结束],t,r [从索引1到结束])为真,则

    • 如果t [0]与r [0]相同,则

      • 返回True

      • 如果solve(s,t [从索引1到结束],r [从索引1到结束])为真,则

    • 返回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

    猜你喜欢