精華區beta Marginalman 關於我們 聯絡資訊
※ 引述《dont (dont)》之銘言: : 1653. Minimum Deletions to Make String Balanced : ## 思路 : Minimum Deletions = 把所有的ba配對刪掉的次數 : for迴圈掃整個字串 : 如果遇到a 且Stack最後是b 就pop掉 並且 ans+1 : 否然就把該字元加進Stack : ## Complexity : Time, Space: O(N) : ## Code : ```python : class Solution: : def minimumDeletions(self, s: str) -> int: : n = len(s) : ans = 0 : stack = [] : for ch in s: : if stack and stack[-1] == 'b' and ch == 'a': : stack.pop() : ans += 1 : else: : stack.append(ch) : return ans : ``` 仔細想想昨天這一題其實根本不需要Stack... 用個變數計錄目前遇到的b個數就好了 遇到a且count > 0的話就扣掉他(刪掉這對ba) ```python class Solution: def minimumDeletions(self, s: str) -> int: n = len(s) ans = count = 0 for ch in s: if ch == 'b': count += 1 elif count: count -= 1 ans += 1 return ans ``` -- http://i.imgur.com/OLvBn3b.jpg -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 185.213.82.24 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1722386853.A.D71.html
sustainer123: 大師 07/31 08:50