我有一个真正的问题。我需要解析一个字符串输入示例:(((10)40((25)30(35)))50((70(80(40)))60))
是的,这是树的代码。我需要做一些检查以找到具体的 节点,但现在我只是想为这棵树构建目录或列表。 然后我可以自己管理支票。我想。
从中获得可行的输出。 最好的情况会是像这样的目录: {(零点50),(1:40,60)...}
甚至只是简单地将正确的整数附加到某个列表中 是可行的。
我已经尝试了几个小时来编写类似的东西,但我总是卡住。 我最好的选择是这段代码: def parsing_input(string_brackets):
def parsing_input(string_brackets):
stack=[]
counter = -1
for character in string_brackets:
if character == '(':
counter += 1
stack.append('')
elif character==')':
counter -= 1
else:
stack[counter] += character
return stack
带输出:
[' 50',' 4060',' 103070',' 253580',' 40',& #39;','','','','']
但是这不起作用,我的整数可能是不同的大小所以我不能将它们分开。我也不喜欢那些空字符串。他们可能会减慢速度 码。老实说,我已经尝试了几个小时。
编辑:忘了说我不允许使用外部库。我知道有些库可以轻松完成,但我不能使用它们。答案 0 :(得分:0)
使用代码中的当前表单,您应该能够通过在减去之前附加逗号来添加分隔。至于删除空桶,您可以在第二次运行堆栈时执行此操作。此外,在第二次运行时,您可以构建您想要的目录作为第二个变量。
dlmalloc