今日题目

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