程序计算要删除的最小无效括号以使字符串在Python中正确
假设我们有一串括号;我们必须编写一个函数来计算要删除的最小括号数量,以使字符串正确(每个打开的括号最终都会关闭)。
因此,如果输入类似于“(()))(”,那么输出将为2,因为正确的字符串为“(())”,请删除“)(”。
为了解决这个问题,我们将遵循以下步骤-
总计:=0,温度:=0
对于s中的每个p
温度:=温度+1
总计:=总计-1
总计:=总计+1
如果p与“(”相同,则
否则,当p与“)”相同且合计不为0时,则
除此以外,
返回总计+温度
让我们看下面的实现以更好地理解-
示例
class Solution: def solve(self, s): total = 0 temp = 0 for p in s: if p == "(": total += 1 elif p == ")" and total: total -= 1 else: temp += 1 return total + temp ob1 = Solution()string = "(()))(" print(ob1.solve(string))
输入值
"(()))("
输出结果
2