diff --git a/leetcode/3501-3600/3541.Find-Most-Frequent-Vowel-and-Consonant/README.md b/leetcode/3501-3600/3541.Find-Most-Frequent-Vowel-and-Consonant/README.md index 6547fb9a..3fbcab39 100755 --- a/leetcode/3501-3600/3541.Find-Most-Frequent-Vowel-and-Consonant/README.md +++ b/leetcode/3501-3600/3541.Find-Most-Frequent-Vowel-and-Consonant/README.md @@ -1,28 +1,46 @@ # [3541.Find Most Frequent Vowel and Consonant][title] -> [!WARNING|style:flat] -> This question is temporarily unanswered if you have good ideas. Welcome to [Create Pull Request PR](https://github.com/kylesliu/awesome-golang-algorithm) - ## Description +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: a = "11", b = "1" -Output: "100" -``` +Input: s = "successes" -## 题意 -> ... +Output: 6 -## 题解 +Explanation: -### 思路1 -> ... -Find Most Frequent Vowel and Consonant -```go +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. +``` ## 结语 diff --git a/leetcode/3501-3600/3541.Find-Most-Frequent-Vowel-and-Consonant/Solution.go b/leetcode/3501-3600/3541.Find-Most-Frequent-Vowel-and-Consonant/Solution.go index d115ccf5..a7f5644f 100644 --- a/leetcode/3501-3600/3541.Find-Most-Frequent-Vowel-and-Consonant/Solution.go +++ b/leetcode/3501-3600/3541.Find-Most-Frequent-Vowel-and-Consonant/Solution.go @@ -1,5 +1,17 @@ package Solution -func Solution(x bool) bool { - return x +func Solution(s string) int { + count := [26]int{} + for _, b := range []byte(s) { + count[b-'a']++ + } + vowel, consonant := 0, 0 + for i := 'a'; i <= 'z'; i++ { + if i == 'a' || i == 'e' || i == 'i' || i == 'o' || i == 'u' { + vowel = max(vowel, count[i-'a']) + continue + } + consonant = max(consonant, count[i-'a']) + } + return vowel + consonant } diff --git a/leetcode/3501-3600/3541.Find-Most-Frequent-Vowel-and-Consonant/Solution_test.go b/leetcode/3501-3600/3541.Find-Most-Frequent-Vowel-and-Consonant/Solution_test.go index 14ff50eb..8868f312 100644 --- a/leetcode/3501-3600/3541.Find-Most-Frequent-Vowel-and-Consonant/Solution_test.go +++ b/leetcode/3501-3600/3541.Find-Most-Frequent-Vowel-and-Consonant/Solution_test.go @@ -10,12 +10,11 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool - expect bool + inputs string + expect int }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", "successes", 6}, + {"TestCase2", "aeiaeia", 3}, } // 开始测试 @@ -30,10 +29,10 @@ func TestSolution(t *testing.T) { } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }