用 Python 编写一个程序来计算每个括号深度中的字符数
pythonserver side programmingprogramming更新于 2026/1/11 11:24:17
假设我们有一个字符串 s,它只包含三个字符"X"、"("和")"。该字符串有匹配的括号,并且括号之间有一些"X",并且可能还有嵌套的括号,这些括号也可能以递归方式存在。我们必须找到 s 中每个括号深度的"X"的数量,从最浅的深度开始到最深的深度。
因此,如果输入为 s = "(XXX(X(XX))XX)",则输出将是 [5, 1, 2]

为了解决这个问题,我们将遵循以下步骤 −
- depth := -1
- out := a new list
- 对于 s 中的每个 c,执行
- if c 与 "(" 相同,则
- depth :=depth + 1
- 否则,当 c 与 ")" 相同时,则
- depth :=depth - 1
- 如果depth与out的大小相同,则
- 在out的末尾插入0
- 如果c与"X" 相同,则
- out[depth] :=out[depth] + 1
- if 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]
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

