#include <stdio.h>
#include <string>
#include <map>
using namespace std;
char s[105];
int main(){
int len,i,j;
string str,temp;
while(scanf("%s",s)!=EOF){
str=s;
map<string,int> mymap;
len=str.length();
for(i=0;i<len;i++){
for(j=i;j<len;j++){
temp=str.substr(i,j-i+1);
mymap[temp]++;
}
}
map<string,int>::iterator it;
for(it=mymap.begin();it!=mymap.end();it++){
if(it->second >1)printf("%s %d\n",(it->first).c_str(),it->second);
}
}
return 0;
}
/**************************************************************
Problem: 1149
User: cust123
Language: C++
Result: Accepted
Time:10 ms
Memory:1452 kb
****************************************************************/
题目1149:子串计算
最新推荐文章于 2024-09-13 09:25:12 发布
这是一个C++程序,用于读取字符串并计算所有不重复子串的出现次数。程序使用了map数据结构存储子串及其出现频率,并打印出出现次数大于1的子串。
摘要由CSDN通过智能技术生成