From 5a514741a6e04084589958d132d43ed9da34681c Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Sat, 13 Sep 2025 08:59:07 +0800 Subject: [PATCH] Add solution and test-cases for problem 3541 --- .../README.md | 44 +++++++++++++------ .../Solution.go | 16 ++++++- .../Solution_test.go | 13 +++--- 3 files changed, 51 insertions(+), 22 deletions(-) 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 6547fb9ae..3fbcab395 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 d115ccf5e..a7f5644ff 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 14ff50eb4..8868f312b 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() { }