-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.cpp
More file actions
77 lines (70 loc) · 2.31 KB
/
main.cpp
File metadata and controls
77 lines (70 loc) · 2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// Source: https://leetcode.com/problems/find-most-frequent-vowel-and-consonant
// Title: Find Most Frequent Vowel and Consonant
// Difficulty: Easy
// Author: Mu Yang <http://muyang.pro>
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 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.
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <array>
#include <string>
using namespace std;
// Count
class Solution {
public:
int maxFreqSum(string s) {
int n = s.size();
// Count
auto counter = array<int, 128>();
for (auto ch : s) {
++counter[ch];
}
// Max
auto ansV = 0, ansC = 0;
for (auto ch = 'a'; ch <= 'z'; ++ch) {
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
ansV = max(ansV, counter[ch]);
} else {
ansC = max(ansC, counter[ch]);
}
}
return ansV + ansC;
}
};