Re: [閒聊] 每日leetcode

作者: dont   2024-07-31 08:47:30
※ 引述《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
```
作者: sustainer123 (caster)   2024-07-31 08:50:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com