Easy
You are given a string s consisting of lowercase English letters. Your task is to find the maximum difference between the frequency of two characters in the string such that:
Return the maximum difference, calculated as the frequency of the character with an odd frequency minus the frequency of the character with an even frequency.
Example 1:
Input: s = “aaaaabbc”
Output: 3
Explanation:
'a' has an odd frequency of 5, and 'b' has an even frequency of 2.5 - 2 = 3.Example 2:
Input: s = “abcabcab”
Output: 1
Explanation:
'a' has an odd frequency of 3, and 'c' has an even frequency of 2.3 - 2 = 1.Constraints:
3 <= s.length <= 100s consists only of lowercase English letters.s contains at least one character with an odd frequency and one with an even frequency.import kotlin.math.max
import kotlin.math.min
class Solution {
fun maxDifference(s: String): Int {
val freq = IntArray(26)
var maxOdd = 0
var minEven = 1000
for (i in 0..<s.length) {
freq[s[i].code - 'a'.code]++
}
for (j in freq) {
if (j != 0 && j % 2 == 0) {
minEven = min(minEven, j)
} else {
maxOdd = max(maxOdd, j)
}
}
return maxOdd - minEven
}
}