今日题目
https://leetcode.com/problems/minimum-length-of-string-after-operations/
解题思路
- 本题中,每个字符是相互独立的,因此可以逐个字符分析。
- 如果某个字符出现次数为奇数,则从左到右不断删除,最终会剩下 1 个字符。
- 如果出现次数为偶数,最终会剩下 2 个字符。
解题方法
因此,只需统计每个字符的出现次数,然后判断其奇偶性即可。
复杂度分析
-
时间复杂度:$O(N)$,N 为字符串长度。
-
空间复杂度:$O(N)$,使用了一个计数器存储字符频次。
代码
class Solution:
def minimumLength(self, s: str) -> int:
cnt = Counter([ch for ch in s])
ans = 0
for x,v in cnt.items():
if v % 2 == 0:
ans += 2
else:
ans += 1
return ans