通过递归删除 Python 中的给定子字符串来检查字符串是否可以变空

假设我们有两个字符串 s 和 t。我们可以从 s 中删除 t 任意次。并且 t 一次只出现一次。我们必须根据需要多次删除 t 来检查 s 是否可以变为空。

因此,如果输入类似于 s = "pipipinnn" t = "pin",那么输出将为 True,因为我们可以从 "pipipinnn" 中删除 "pin",然后我们将得到 "pipinn",再次删除 "pin" 到获取字符串“pin”,然后将其删除以使其为空。

为了解决这个问题,我们将按照以下步骤操作 -

  • 当 s > 0 的大小时,做

    • 从循环中出来

    • position := s 中 t 的起始索引

    • 如果位置不在 s 中,则

    • s := 从 s 中删除 t 一次

    • 当 s 的大小与 0 相同时返回 true 否则返回 false

    让我们看看以下实现以获得更好的理解 -

    示例

    def solve(s, t):
       while len(s) > 0:
          position = s.find(t)
          if position == -1:
             break
          s = s.replace(t, "", 1)
       return len(s) == 0
    s = "pipipinnn"
    t = "pin"
    print(solve(s, t))

    输入

    "pipipinnn", "pin"
    输出结果
    True

    猜你喜欢