- 题目链接:http://noi.openjudge.cn/ch0201/2472/
- 总时间限制: 1000ms 内存限制: 65536kB
- 描述
-
给出一个只包含0和1的字符串(长度在1到100之间),求其每一个子串出现的次数。
- 输入
- 一行,一个01字符串。
- 输出
- 对所有出现次数在1次以上的子串,输出该子串及出现次数,中间用单个空格隔开。按子串的字典序从小到大依次输出,每行一个。
- 样例输入
-
10101
- 样例输出
-
0 2 01 2 1 3 10 2 101 2
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 5 struct obj 6 { 7 char str[105]; 8 int count; 9 }; 10 11 void fun(char temp[]); 12 int cmp(const void *a,const void *b); 13 14 struct obj b[60000]; 15 int indexOfBArr=0; //b[]的下标,indexOfBArr表示b[]真正使用的行数 16 17 int main(int argc, char *argv[]) 18 { 19 char a[105],temp[105]; 20 int i,j,len,k,t; 21 22 scanf("%s",a); 23 len=strlen(a); 24 25 //枚举所有子串 26 for(i=0;i<len;i++)//枚举子串的开始点 27 { 28 k=0; 29 for(j=i;j<len;j++)//枚举子串的结束点 30 { 31 temp[k]=a[j]; 32 k++; 33 temp[k]='