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