题意:
有一个字符串 S,并希望你能求出 S 出现次数最多的非空子串的出现次数,记作 p。
思路:
贪心算法入门,出现最多次(假设为n)的子串中至少有一个字母也出现了n次,且字符串中任一字母最多也只出现n次,所以只需统计每个字母出现的最大次数即可。
源码:
#include <iostream>
using namespace std;
int main() {
string s;
int ans = 0;
int a[30] = { 0 };
cin >> s;
for (int i = 0; i < s.length(); i++)
a[s[i] - 'a']++;
for (int i = 0; i < 26; i++)
ans = max(ans, a[i]);
cout << ans;
return 0;
}
ps:刚开始贪心,还是要多写才能熟练。