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中文網其他相關文章!