Description
You are given a string s
consisting of lowercase English letters.
Your task is to find the maximum difference diff = freq(a1) - freq(a2)
between the frequency of characters a1
and a2
in the string such that:
a1
has an odd frequency in the string.a2
has an even frequency in the string.
Return this maximum difference.
Β
Example 1:
Input: s = "aaaaabbc"
Output: 3
Explanation:
- The character
'a'
has an odd frequency of5
, and'b'
has an even frequency of2
. - The maximum difference is
5 - 2 = 3
.
Example 2:
Input: s = "abcabcab"
Output: 1
Explanation:
- The character
'a'
has an odd frequency of3
, and'c'
has an even frequency of 2. - The maximum difference is
3 - 2 = 1
.
Β
Constraints:
3 <= s.length <= 100
s
consists only of lowercase English letters.s
contains at least one character with an odd frequency and one with an even frequency.
Solution
Python3
class Solution:
def maxDifference(self, s: str) -> int:
counter = Counter(s).values()
maxOdd, minEven = -inf, inf
for v in counter:
if v % 2 == 0:
minEven = min(minEven, v)
else:
maxOdd = max(maxOdd, v)
return maxOdd - minEven