摘要:2025-10-25:找到频率最高的元音和辅音。用go语言,给你一个只包含小写英文字母的字符串 s。请分别在元音集合 {a, e, i, o, u} 和其余字母(即辅音)中找出各自出现次数最多的字母,然后把这两个最大出现次数相加并返回结果。若元音或辅音在字符串
2025-10-25:找到频率最高的元音和辅音。用go语言,给你一个只包含小写英文字母的字符串 s。请分别在元音集合 {a, e, i, o, u} 和其余字母(即辅音)中找出各自出现次数最多的字母,然后把这两个最大出现次数相加并返回结果。若元音或辅音在字符串中完全未出现,则把对应的次数视为 0;若有多种字母并列为最高频,任选其中一种即可。字母的“出现次数”即该字母在 s 中出现了多少次。
1
s 只包含小写英文字母。
输入: s = "successes"。
输出: 6。
解释:
元音有:'u' 出现 1 次,'e' 出现 2 次。最大元音频率 = 2。
辅音有:'s' 出现 4 次,'c' 出现 2 次。最大辅音频率 = 4。
输出为 2 + 4 = 6。
题目来自力扣3541。
首先,遍历字符串 s,用一个 map[byte]int 来记录每个字符出现的次数。
例如 s = "successes":
• s → 4 次
• u → 1 次
• c → 2 次
• e → 2 次
其他字母未出现。
初始化 vowel = 0 和 consonant = 0。
然后遍历 26 个小写字母 'a' 到 'z':
• 对于每个字母,从 mp 中取出它的出现次数 count(如果没出现过就是 0)。
• 判断该字母是否为元音(a, e, i, o, u 之一):
如果是元音,则更新 vowel = max(vowel, count)。如果是辅音,则更新 consonant = max(consonant, count)。• 元音字母:
a → 0e → 2 → vowel = 2i → 0o → 0u → 1 → vowel = max(2, 1) = 2所以元音最大频率 = 2。
• 辅音字母:
b ~ d 等略过c → 2 → consonant = 2s → 4 → consonant = max(2, 4) = 4所以辅音最大频率 = 4。
结果 = 2 + 4 = 6。
• 遍历字符串一次,长度 n,O(n)。
• 遍历 26 个字母,固定 O(26) 即 O(1)。
总时间复杂度:O(n)。
• 哈希表 mp 最多存储 26 个不同字母的计数,所以额外空间是 O(26) 即 O(1)(因为字母表固定大小)。
• 其他变量是常数空间。
总额外空间复杂度:O(1)。
package mAInimport ( "fmt")func maxFreqSum(s string)int { mp := make(map[byte]int) for i := 0; i我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。
来源:雪珍教育