题目描述
给出一个01字符串(长度不超过100),求其每一个子串出现的次数。
输入描述
输入包含多行,每行一个字符串
输出描述
对每个字符串,输出它所有出现次数在1次以上的子串和这个子串出现的次数,输出按字典序排序。
实例1
10101
输出
0 2
01 2
1 3
10 2
101 2
AC代码
#include <bits/stdc++.h>
#include <string>
#include <map>
using namespace std;
int main() {
string input;
while (cin >> input) {
map<string, int> m;
for (int i = 0; i <= input.size(); ++i) {
for (int j = 0; j < i ; ++j) {
string key = input.substr(j, i - j); //每个子串
m[key]++; //映射值加1
}
}
for (map<string, int>::iterator it = m.begin(); it != m.end(); ++it) {
if (it->second > 1)
cout << it->first << " " << it->second << endl;
}
}
return 0;
}