#include <iostream> #include <cstring> #include <map> using namespace std; int main() { string str; cin>>str; map<string,int> m; for(int i=0;i<str.size();i++){ for(int j=1;j<=str.size()-i;j++){ m[str.substr(i,j)]++;//获取字符串中从第i位开始的长度为j的字符串 } } //map由红黑树实现,自动按照key值从小到大排序 map<string,int>:: iterator it=m.begin(); for(it=m.begin();it!=m.end();it++){ if(it->second>1){ cout<<it->first<<" "<<it->second<<endl; } } return 0; }