题目链接
直接暴力,用map函数存每个子串出现的次数,子串的类型使用两层循环遍历。
#include<bits/stdc++.h>
using namespace std;
int main(){
string str;
map<string, int> mp;
while(cin>>str){
mp.clear();
for(int i=0; i<str.size(); i++){
for(int j=i; j<str.size();j++){
string s;
for(int k=i; k<=j;k++){ //注意这里要取等号
s += str[k];
}
mp[s]++;
}
}
for(auto it: mp){
if(it.second > 1){
cout<<it.first<<" "<<it.second<<endl;
}
}
}
return 0;
}