Python程序:统计每个括号深度内的字符数
假设我们有一个字符串s,它只包含三个字符“X”、“(”和“)”。该字符串具有平衡的括号,并且在其中一些“X”与可能嵌套的括号一起递归存在。我们必须找到s中每个括号深度的“X”的数量,从最浅的深度到最深的深度。
因此,如果输入类似于s = "(XXX(X(XX))XX)",则输出将为[5, 1, 2]

为了解决这个问题,我们将遵循以下步骤:
- depth := -1
- out := 新列表
- 对于s中的每个字符c,执行以下操作:
- 如果c与“(”相同,则
- depth := depth + 1
- 否则,如果c与“) ”相同,则
- depth := depth - 1
- 如果depth与out的大小相同,则
- 在out的末尾插入0
- 如果c与“X”相同,则
- out[depth] := out[depth] + 1
- 如果c与“(”相同,则
- 返回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]
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP