字符串匹配-复旦大学机试(水题)

来源:互联网 发布:mac版迅雷开机自动启动 编辑:程序博客网 时间:2024/04/30 05:00
Problem1: 字符串匹配
对于主串M和模式串P,找到P在M中出现的所有子串的第一个字符在P中的位置。P中第一个字符所在的位置为0。首行的数字表示有多少组字符串。
[输入及示例]
2
ababababa
ababa
aaa
aa
[输出及示例]
0 2 4

0 1

#include<stdio.h>#include<stdlib.h>#include<string.h>char str1[100],str2[100];int main(){int n;scanf("%d",&n);while(n--){memset(str1,0,sizeof(str1));memset(str2,0,sizeof(str2));scanf("%s",str1);scanf("%s",str2);int len1=strlen(str1);int len2=strlen(str2);int idx;for(int i=0;i<len1;i++){if(str1[i]!=str2[0])  continue;idx=i;if(len1-i<len2)break;for(int j=0;j<len2;j++){if(str1[i]!=str2[j])break;i++;if(j=len2-1)printf("%d ",idx);}i=idx;}}system("pause");return 0;}


0 0
原创粉丝点击