如何在圆括号之间得到一个表达式

如何在圆括号之间得到一个表达式,第1张

如何在圆括号之间得到一个表达式

这是堆栈的标准用例:按字符读取字符串,每当遇到左括号时,便将符号压入堆栈;如果遇到右圆括号,则从堆栈中d出符号。

由于您只有一种类型的括号,因此实际上不需要堆栈。相反,仅记住有多少个开放括号就足够了。

另外,为了提取文本,我们还记得在第一级括号打开时部分从哪里开始,并在遇到匹配的结束括号时收集结果字符串。

可能看起来像这样:

string = "(this is (haha) a string(()and it's sneaky)) ipsom (lorem) bla"stack = 0startIndex = Noneresults = []for i, c in enumerate(string):    if c == '(':        if stack == 0: startIndex = i + 1 # string to extract starts one index later        # push to stack        stack += 1    elif c == ')':        # pop stack        stack -= 1        if stack == 0: results.append(string[startIndex:i])print(results)# ["this is (haha) a string(()and it's sneaky)", 'lorem']


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5623668.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存