【发布时间】:2016-12-14 22:03:28
【问题描述】:
所以我有一个需要编写的脚本,而最大的问题之一归结为在字符串中找到最大的有效子序列。所以我有类似的东西
"()(({}[](][{[()]}]{})))("
作为输入,我需要返回
"[{[()]}]{}"
作为输出。
我尝试过使用类似堆栈的结构,如果它只是括号,但无法找出可行的方法。我更喜欢 python 中的解决方案,但任何人可以提供的任何指导都会有所帮助,无论语言如何。理想情况下,效率应该比 n^2 更好,因为我可以想到使用此 How to find validity of a string of parentheses, curly brackets and square brackets? 的 O(n^2) 解决方案,并在不同的子字符串上尝试它
【问题讨论】:
-
在我看来,正确的答案应该是除了最后一个
(之外的所有内容,还是我对这个问题有误解? -
不,你不是。我只是愚蠢。已编辑
-
实际上,我喜欢输入序列,我只是想确保我们在输出序列上达成一致:)
-
“有效”这里的意思是左括号后面总是跟着它匹配的右括号,和此时没有打开的内括号对?因为你没有说明什么是“有效”。
标签: python algorithm stack dynamic-programming parentheses