3541. 找到频率最高的元音和辅音

题目

给你一个由小写英文字母('a' 到 'z')组成的字符串 s。你的任务是找出出现频率 最高 的元音('a''e''i''o''u' 中的一个)和出现频率最高的辅音(除元音以外的所有字母),并返回这两个频率之和。

注意:如果有多个元音或辅音具有相同的最高频率,可以任选其中一个。如果字符串中没有元音或没有辅音,则其频率视为 0。

一个字母 x 的 频率 是它在字符串中出现的次数。

示例 1:

输入: s = "successes"

输出: 6

解释:

  • 元音有:'u' 出现 1 次,'e' 出现 2 次。最大元音频率 = 2。
  • 辅音有:'s' 出现 4 次,'c' 出现 2 次。最大辅音频率 = 4。
  • 输出为 2 + 4 = 6

示例 2:

输入: s = "aeiaeia"

输出: 3

解释:

  • 元音有:'a' 出现 3 次,'e' 出现 2 次,'i' 出现 2 次。最大元音频率 = 3。
  • s 中没有辅音。因此,最大辅音频率 = 0。
  • 输出为 3 + 0 = 3

提示:

  • 1 <= s.length <= 100
  • s 只包含小写英文字母

具体代码

class Solution {
public:
    int maxFreqSum(string s) {
        vector<int> ASCII(26, 0);
        int max_vowel = 0;
        int max_consonant = 0;
        for(const char& letter : s)
        {
            ASCII[letter - 'a']++;

            if(letter == 'a' || letter == 'e' || letter == 'i' || letter == 'o' || letter == 'u')
                max_vowel = max(max_vowel, ASCII[letter - 'a']);
            else
                max_consonant = max(max_consonant, ASCII[letter - 'a']);
        }

        return max_consonant + max_vowel;
        
    }
};