🔗 https://leetcode.com/problems/maximum-difference-between-even-and-odd-frequency-i
题目
- 给一个由小写字母组成的字符串
- 返回 freq(ch1) - freq(ch2) 的最大值,要求 ch1 出现次数为 odd,ch2 出现次数为 even
思路
- 遍历字符串,统计字符的频率
- 记录 max odd 的频率,min even 的频率,注意不统计 0
- 返回 max_odd - min_even
代码
class Solution {
public:
int maxDifference(string s) {
vector<int> freq(26);
for (auto ch : s) {
freq[ch - 'a']++;
}
int max_odd = 0;
int min_even = s.size();
for (int i = 0; i < 26; i++) {
if (freq[i] == 0) continue;
if (freq[i] & 1) {
max_odd = max(max_odd, freq[i]);
} else {
min_even = min(min_even, freq[i]);
}
}
return max_odd - min_even;
}
};