06. Maximum Occurring Character

Using Map

char getMaxOccuringChar(string str)
{
    map<char, int> freq;
    int maxm = INT_MIN;
    char mostFrequent = '\0';
    
    for(char ch: str)
        freq[ch]++;
        
    for(pair<char, int> p: freq) 
        if(p.second > maxm) {
            maxm = p.second;
            mostFrequent = p.first;
        }
    
    return mostFrequent;
}

Using lookup table

char getMaxOccuringChar(string str)
{
    vector<int> freq(26, 0);
    int maxm = INT_MIN;
    char mostFrequent = '\0';
    
    for(char ch: str)
        freq[ch - 'a']++;
    
    for(int i = 0; i < 26; i++)
        if(freq[i] > maxm) {
            maxm = freq[i];
            mostFrequent = i + 'a';
        }
        
    return mostFrequent;
}

Last updated