1249. Minimum Remove to Make Valid Parentheses
https://leetcode.com/contest/weekly-contest-161/problems/minimum-remove-to-make-valid-parentheses/
Remove the minimum number of invalid parentheses in order to make the input string valid. Return one possible results.
Note: The input string may contain letters other than the parentheses
(
and)
.
Thoughts
由()和字母组成的字符串,返回任意一个最少删除字符能够适得()配对的结果。301的简化版, 只要返回一个不需要DFS,核心思想还是一致的。 当count < 0时意味着par[1]数目超过par[0], 可以删除prefix中的任意一个par[1], 删除i。当par[0] == '('时, 意味着多出的'('还没有删, 因此把上轮删的结果的s翻转一下, 把par[0]换成')', 重复之前的过程。 此时s中是配好对的了, 只是顺序还是反着的, 最后再把s翻转。
Code
Analysis
Errors:
当count--到小于0时, 别忘了再把它加回去. 因为相当于删除了i, count又平衡了.
时间复杂度O(N).
Last updated
Was this helpful?