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