题目描述
给出一个 01字符串,求其每一个子串出现的次数
样例
输入样例:
10101
输出样例:
0 2
01 2
1 3
10 2
101 2
C++ 代码
关键是记录字符串出现的次数,设置两个指针i,j
指针i:0~str.size() 指针j:i~str.size()
//子串的计算
#include<iostream>
#include<map>
using namespace std;
int main(){
string str;
while(cin>>str){
map<string,int> str_map;//记录字符串出现的次数
//遍历所能产生的所有字符串组合
for(int i=0;i<str.size();i++){
string tmp="";
for(int j=i;j<str.size();j++){
tmp+=str[j];
str_map[tmp]++;
}
}
map<string,int>::iterator it;
for(it=str_map.begin();it!=str_map.end();it++){
if(it->second>1) cout<<it->first<<" "<<it->second<<endl;
}
}
}