#include<bits/stdc++.h> using namespace std; map<string,int> m; int main(){ char str[101]; fgets(str,101,stdin); string str1 = str; str1.pop_back();//去掉最后换行符 for(int i = 1 ; i <= str1.size();i++){//i从1开始,这样j-i才能最开始是1开始 for(int j = 0 ; j < i ; j++){ string key = str1.substr(j,i-j); m[key]++;//出现的子串进行累加 } } map<string,int>::iterator it; for(it = m.begin(); it != m.end();it++){ if(it->second >1){ printf("%s %d\n",it->first.c_str(),it->second); } } }