3442.奇偶频次间的最大差值I
https://leetcode.cn/problems/maximum-difference-between-even-and-odd-frequency-i/
给你一个由小写英文字母组成的字符串 s 。请你找出字符串中两个字符的出现频次之间的 最大 差值,这两个字符需要满足:
- 一个字符在字符串中出现 偶数次 。
- 另一个字符在字符串中出现 奇数次 。
返回 最大 差值,计算方法是出现 奇数次 字符的次数 减去 出现 偶数次 字符的次数。
示例 1:
输入:s = "aaaaabbc"
输出:3
解释:
- 字符
'a'出现 奇数次 ,次数为5;字符'b'出现 偶数次 ,次数为2。 - 最大差值为
5 - 2 = 3。
示例 2:
输入:s = "abcabcab"
输出:1
解释:
- 字符
'a'出现 奇数次 ,次数为3;字符'c'出现 偶数次 ,次数为 2 。 - 最大差值为
3 - 2 = 1。
提示:
3 <= s.length <= 100s仅由小写英文字母组成。s至少由一个出现奇数次的字符和一个出现偶数次的字符组成。
python
from collections import Counter
class Solution:
def maxDifference(self, s: str) -> int:
count = Counter(s)
odd, even = [], []
for key,value in count.items():
if value % 2 == 1:
odd.append((value, key))
else:
even.append((value, key))
odd.sort(reverse = True)
even.sort()
#print(odd, even)
return odd[0][0] - even[0][0]
if __name__ == '__main__':
s = Solution()
print(s.maxDifference("aaaaabbc"))
print(s.maxDifference("abcabcab"))