2025-09-13 Daily Challenge

Today I have done leetcode's September LeetCoding Challenge with cpp.

September LeetCoding Challenge 13

Description

Find Most Frequent Vowel and Consonant

You are given a string s consisting of lowercase English letters ('a' to 'z').

Your task is to:

  • Find the vowel (one of 'a', 'e', 'i', 'o', or 'u') with the maximum frequency.
  • Find the consonant (all other letters excluding vowels) with the maximum frequency.

Return the sum of the two frequencies.

Note: If multiple vowels or consonants have the same maximum frequency, you may choose any one of them. If there are no vowels or no consonants in the string, consider their frequency as 0.

The frequency of a letter x is the number of times it occurs in the string.

 

Example 1:

Input: s = "successes"

Output: 6

Explanation:

  • The vowels are: 'u' (frequency 1), 'e' (frequency 2). The maximum frequency is 2.
  • The consonants are: 's' (frequency 4), 'c' (frequency 2). The maximum frequency is 4.
  • The output is 2 + 4 = 6.

Example 2:

Input: s = "aeiaeia"

Output: 3

Explanation:

  • The vowels are: 'a' (frequency 3), 'e' ( frequency 2), 'i' (frequency 2). The maximum frequency is 3.
  • There are no consonants in s. Hence, maximum consonant frequency = 0.
  • The output is 3 + 0 = 3.

 

Constraints:

  • 1 <= s.length <= 100
  • s consists of lowercase English letters only.

Solution

class Solution {
  bool isVowel(char c) {
    switch(c) {
      case 'a':
      case 'e':
      case 'i':
      case 'o':
      case 'u':
        return true;
      default:
    }
    return false;
  }
public:
  int maxFreqSum(string s) {
    vector<int> count(128);
    int maxV = 0;
    int maxC = 0;
    for(auto c : s) {
      count[c] += 1;
      if(isVowel(c)) maxV = max(maxV, count[c]);
      else maxC = max(maxC, count[c]);
    }
    return maxV + maxC;
  }
};

// Accepted
// 812/812 cases passed (0 ms)
// Your runtime beats 100 % of cpp submissions
// Your memory usage beats 67.84 % of cpp submissions (9.7 MB)