竞赛
考级
题干分析 有一个只有 ( 和 ) 的字符串,要删除任意多个字符,使其变成合法括号串。 思路 用 stack 模拟配对过程,如果当前的 sis_isi 是等于 ( 的,就将 sis_isi 放入栈中,等待匹配。否则就检查是否还有没被匹配的 (,如果有就出栈,否则计数器 +1+1+1。当 sss 被遍历完后,剩下的 ( 也无法被匹配(如果有的话),因此答案为计数器 +++ 栈内剩余的元素个数。 代码
思路 如果有配对不上的右括号,则其一定是需要删除的,但是如果有还没配对的左括号,可以先存下,遇到右括号则与其匹配,如果整个字符串都遍历结束了都还有 nnn 个未匹配的左括号,则还需要额外 nnn 次去删除这些多余的左括号。 AC CODE
本题可以也使用stack 遍历字符串,分情况讨论: 当为 '(' 时前面有')'则直接删除,再加入 当为' ) '时当作一个括号匹配
提交答案之后,这里将显示提交结果~