文章
8
粉丝
216
获赞
20
访问
67.0k
#include<bits/stdc++.h>
using namespace std;
string str;
int main(){
while(cin >> str){
//使用map容器;相当于字典:一个关键字对应一个值
//关键字是唯一标识
//map<key, value>;key-关键字、value-值
map<string, int> m;
int len = str.length();
//对于该字符串的每个子串建立键值匹配
for(int i=0; i<len; i++){
//如字符串10101
//从i为0开始:得到子串 1/10/101/1010/10101
//当i为1:得到子串 0/01/010/0101
//当i为2:得到子串 1/10/101
//当i为3:得到子串 0/01
//当i为4:得到子串 1
for(int j=i; j<len; j++){
string s = str.substr(i, j-i+1);//从i位置向后取长度为j-i+1的子串
//对应子串的值增加;用于计数
m[s]++;
}
}
for(map<string, int>::iterator it = m.begin(); it!=m.end(); it++){
//使用迭代器;it->second指向value值
//it->first指向关键字key
if(it->second > 1)
cout << it->first << " " << it->second << endl;
}
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发