检查 Python 中两个字符串的连接是否平衡

假设我们有两个括号序列 s 和 t,只有这些字符 '(' 和 ')'。我们必须检查 s 和 t 的连接字符串是否平衡。连接可以通过 s | 完成 t 或 t | s。

因此,如果输入类似于 s = "()()))", t = "()(()("),那么输出将为 True 因为如果我们连接 t | s,那么我们将得到 "() (()(()()))”,这是平衡的。

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

  • 定义一个函数is_balanced_parenthesis()。这将需要字符串

  • 堆栈 := 一个新列表

  • 对于范围 0 到字符串大小的 i,请执行

    • 如果堆栈为空,则

    • 否则,

    • 返回错误

    • 从堆栈中弹出

    • 将 string[i] 压入堆栈

    • 如果 string[i] 与 '(' 相同,则

    • 否则,

    • 如果堆栈不为空,则

      • 返回错误

    • 返回真

    • 从主要方法执行以下操作 -

    • 如果 is_balanced_parenthesis(s + t) 为真,则

      • 返回真

    • 返回 is_balanced_parenthesis(t + s)

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

    示例

    def is_balanced_parenthesis(string):

       stack = []

       for i in range(len(string)):

          if string[i] == '(':

             stack.append(string[i])

          else:

             if len(stack) == 0:

                return False

             else:

                stack.pop()

       if len(stack) > 0:

          return False

       return True

    def solve(s, t):

       if is_balanced_parenthesis(s + t):

          return True

       return is_balanced_parenthesis(t + s)

    s = "()()))"

    t = "()(()("

    print(solve(s, t))

    输入

    "()()))", "()(()("
    输出结果
    True

    以上是 检查 Python 中两个字符串的连接是否平衡 的全部内容, 来源链接: utcz.com/z/317487.html

    回到顶部