LeetCode-in-Java

3442. Maximum Difference Between Even and Odd Frequency I

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:

Example 2:

Input: s = “abcabcab”

Output: 1

Explanation:

Constraints:

Solution

import java.util.Arrays;

public class Solution {
    public int maxDifference(String s) {
        int[] freq = new int[26];
        Arrays.fill(freq, 0);
        int maxOdd = 0;
        int minEven = 1000;
        for (int i = 0; i < s.length(); ++i) {
            freq[s.charAt(i) - 'a']++;
        }
        for (int j : freq) {
            if (j != 0 && j % 2 == 0) {
                minEven = Math.min(minEven, j);
            } else {
                maxOdd = Math.max(maxOdd, j);
            }
        }
        return maxOdd - minEven;
    }
}