因此,如果输入类似于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

    热门推荐

    免责声明:网站资源来源于网络,如有侵权,请及时联系删除。

    Copyright © 2024 好资源导航网. All Rights Reserved.

    蜀ICP备2021004611号-4 网站地图