这里使用了map,注意怎么遍历。
#include <iostream> #include <string> #include <algorithm> #include <map> using namespace std; int main(){ string s, tmp; while(cin >> s){ map<string,int> m; int len = s.length(); for(int i = 0; i < len; i++){ for(int j = 1; j <= len-i; j++){ tmp = s.substr(i, j); if(m.find(tmp) != m.end()){ m[tmp]++; }else{ m[tmp] = 1; } } } for(auto it = m.begin(); it != m.end(); it++){ if(it -> second > 1){ cout << it->first << " " << it->second << endl; } } } return 0; }