c++输入一个字符串,找出现次数最多的长度为2的子串。
时间: 2024-05-12 15:17:56 浏览: 95
可以通过遍历字符串中的每个长度为2的子串并记录出现次数,然后找到出现次数最多的子串。以下给出一个示例代码:
```
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
string findMostFrequentSubstring(string str) {
unordered_map<string, int> freq; // 记录每个子串的出现次数
for (int i = 0; i + 1 < str.size(); i++) {
string sub = str.substr(i, 2); // 获取长度为2的子串
freq[sub]++; // 记录出现次数
}
string mostFrequent; // 出现次数最多的子串
int maxFreq = 0; // 最大出现次数
for (auto& p : freq) {
if (p.second > maxFreq) {
maxFreq = p.second;
mostFrequent = p.first;
}
}
return mostFrequent;
}
int main() {
string str = "abbcdaabebc";
string mostFrequent = findMostFrequentSubstring(str);
cout << "出现次数最多的长度为2的子串是:" << mostFrequent << endl;
return 0;
}
```
输出结果为:出现次数最多的长度为2的子串是:“ab”
阅读全文