leetcode 3541. 找到频率最高的元音和辅音 简单
给你一个由小写英文字母('a'
到 'z'
)组成的字符串 s
。你的任务是找出出现频率 最高 的元音('a'
、'e'
、'i'
、'o'
、'u'
中的一个)和出现频率最高的辅音(除元音以外的所有字母),并返回这两个频率之和。
注意:如果有多个元音或辅音具有相同的最高频率,可以任选其中一个。如果字符串中没有元音或没有辅音,则其频率视为 0。
一个字母 x
的 频率 是它在字符串中出现的次数。
示例 1:
输入: s = "successes"
输出: 6
解释:
- 元音有:
'u'
出现 1 次,'e'
出现 2 次。最大元音频率 = 2。 - 辅音有:
's'
出现 4 次,'c'
出现 2 次。最大辅音频率 = 4。 - 输出为
2 + 4 = 6
。
示例 2:
输入: s = "aeiaeia"
输出: 3
解释:
- 元音有:
'a'
出现 3 次,'e'
出现 2 次,'i'
出现 2 次。最大元音频率 = 3。 s
中没有辅音。因此,最大辅音频率 = 0。- 输出为
3 + 0 = 3
。
提示:
1 <= s.length <= 100
s
只包含小写英文字母
分析:遍历字符串 s,分别统计出现过的元音字母和辅音字母的最多次数即可。
int maxFreqSum(char* s) {int cnt1=0,cnt2=0,sum[30]={0};for(int i=0;s[i];++i){if(s[i]=='a'||s[i]=='e'||s[i]=='i'||s[i]=='o'||s[i]=='u')sum[s[i]-'a']++,cnt1=fmax(cnt1,sum[s[i]-'a']);else sum[s[i]-'a']++,cnt2=fmax(cnt2,sum[s[i]-'a']);}return cnt1+cnt2;
}