921。使括号有效的最少添加
难度:中等
主题:字符串、堆栈、贪婪
括号字符串有效当且仅当:
给你一个括号字符串 s。一步操作即可在字符串的任意位置插入括号。
返回使 s 有效所需的最小移动次数.
示例1:
示例2:
约束:
解决方案:
我们需要确定需要添加多少个左括号或右括号才能使输入字符串有效。有效的字符串意味着每个左括号 '(' 都有相应的右括号 ')'。
我们可以使用简单的计数器方法来解决这个问题:
让我们用 PHP 实现这个解决方案:921。使括号有效的最少添加
<?php /** * @param String $s * @return Integer */ function minAddToMakeValid($s) { ... ... ... /** * go to ./solution.php */ } // Example usage: $s1 = "())"; echo minAddToMakeValid($s1); // Output: 1 $s2 = "((("; echo minAddToMakeValid($s2); // Output: 3 ?>
此解决方案的时间复杂度为 O(n),其中 n 是字符串的长度,还有一个空格O(1) 的复杂度,因为我们只使用了几个变量。
联系链接
如果您发现本系列有帮助,请考虑在 GitHub 上给 存储库 一个星号或在您最喜欢的社交网络上分享该帖子?。您的支持对我来说意义重大!
如果您想要更多类似的有用内容,请随时关注我:
以上是。使括号有效的最小添加量的详细内容。更多信息请关注PHP中文网其他相关文章!