在Python中统计每个括号深度中字符数量的程序

在Python中统计每个括号深度中字符数量的程序

假设给定一个字符串s,它只由三个字符“X”、“(”和“)”组成。该字符串具有平衡的括号,中间还有一些“X”,以及可能有递归的嵌套括号。我们需要找出s中每个括号深度的“X”数量,从最浅的深度到最深的深度。

因此,如果输入是s =“(XXX(X(XX))XX)”,则输出将是[5,1,2]

在Python中统计每个括号深度中字符数量的程序

为了解决此问题,我们将按照以下步骤进行-。

  • 深度:= -1
  • out:=新列表
  • 对于s中的每个c,执行以下操作
    • 如果c与“(”相同,则
      • 深度:=深度+ 1
    • 否则,当c与“)”相同时,然后
      • depth:= depth-1
    • 如果深度与out的大小相同,则
      • 在out的末尾插入0
    • 如果c与“X”相同,则
      • out[深度]:=out [深度]+ 1
  • 返回out

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

def solve(s):
   depth = -1
   out = []

   for c in s:
      if c == "(":
         depth += 1
      elif c == ")":
         depth -= 1

      if depth == len(out):
         out.append(0)

      if c == "X":
         out[depth] += 1
   return out

s = "(XXX(X(XX))XX)"
print(solve(s))

输入

“(XXX(X(XX))XX)”

输出

[5, 1, 2]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程