题目描述:
给出一个01字符串(长度不超过100),求其每一个子串出现的次数。
输入描述:
输入包含多行,每行一个字符串。
输出描述:
对每个字符串,输出它所有出现次数在1次以上的子串和这个子串出现的次数,输出按字典序排序。
#include <cstdio>
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main(){
string str;
while(cin >> str){
map<string, int> m;
for(int i = 0; i <= str.size(); ++i){
for(int j = 0; j < i; ++j){
m[str.substr(j, i - j)]++;
}
}
for(auto it = m.begin(); it != m.end(); ++it){
if(it -> second > 1)
cout << it -> first << ' ' << it -> second << endl;
}
}
return 0;
}