Re: [閒聊] 每日leetcode

作者: JerryChungYC (JerryChung)   2024-07-30 13:02:03
https://leetcode.com/problems/minimum-deletions-to-make-string-balanced
※ 引述《enmeitiryous (enmeitiryous)》之銘言:
: 1653 minimun deletion make string balance
: 題目:
: 給你一個只有a,b兩種字母構成的字串s,求最少的deletion數使的新字串中
: a一定出現在任一b前面
思路:我也不知道
沒 先上程式碼
Python Code:
class Solution:
def minimumDeletions(self, s: str) -> int:
slen = result = len(s)
sa = s.count('a')
b = 0
for i in range(slen+1):
result = min(result, 2*b - i + sa)
if i != slen and s[i] == 'b':
b += 1
return result
b 原本是 s[:i].count('b') 但發現每次循環都 count 的話會 TLE
2*b - i + sa = b - i + sa + b = b + (sa - (i - b))
全部的a - 前i個當中a的數量 = 位置i到結尾的a的數量
反正就是整合在一起(( 一開始的想法是 s[:i].count('b') + s[i:].count('a')
再補一下
b = s[:i].count('b') # 前i個當中b的數量
s[i:].count('a')
= s.count('a') - (i - b) # a變成只要計算一次就好 所以丟出迴圈
作者: Smallsh (Smallsh)   2023-07-30 13:02:00
大師
作者: oin1104 (是oin的說)   2024-07-30 13:03:00
大師
作者: JenniferLope (ㄚ)   2024-07-30 13:03:00
大師
作者: dont   2024-07-30 13:06:00
大師
作者: sustainer123 (caster)   2024-07-30 13:14:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com