题目描述
给出一个只包含0和1的字符串(长度在1到100之间),求其每一个子串出现的次数。
输入描述
一行,一个01字符串。
输出描述
对所有出现次数在1次以上的子串,输出该子串及出现次数,中间用单个空格隔开。按子串的字典序从小到大依次输出,每行一个。
样例1
输入
#include <bits/stdc++.h>
using namespace std;
int main() {
string str;
map <string, int> mp;
while(cin >> str){
for(int i = 1 ;i <= str.size(); i ++){
for(int j = 0; j < i; j ++){
string sub_str = str.substr(j , i - j);
mp[sub_str] ++;
}
}
map<string, int> :: iterator it = mp.begin();
for(it ; it != mp.end() ; it++){
if(it -> second > 1){
cout << it -> first << " " << it -> second << endl;
}
}
mp.clear();
}
return 0;
}
10101
输出
0 2 01 2 1 3 10 2 101 2