朴素的模式匹配(串)
时间: 1ms 内存:128M
描述:
用一般的思路进行字符串匹配,匹配成功 则输出匹配趟数和匹配成功的位置,匹配失败则输出0
输入:
两个字符串
输出:
匹配趟数和位置
示例输入:
ababcabcacbab
abcac
示例输出:
6 6
提示:
参考答案(内存最优[752]):
#include<stdio.h>
int main()
{
char s[1000],t[1000];
int i,j,p;
gets(s);
gets(t);
for(i=0;s[i]!='\0';i++)
{
p=i;
for(j=0;t[j]!='\0';j++)
{
if(s[i]!=t[j])
break;
i++;
}
if(t[j]=='\0')
{
i--;
break;
}
i=p;
}
if(s[i]!='\0')
printf("%d %d\n",p+1,p+1);
else
printf("0\n");
return 0;
}
参考答案(时间最优[0]):
#include<stdio.h>
int main()
{
char s[1000],t[1000];
int i,j,p;
gets(s);
gets(t);
for(i=0;s[i]!='\0';i++)
{
p=i;
for(j=0;t[j]!='\0';j++)
{
if(s[i]!=t[j])
break;
i++;
}
if(t[j]=='\0')
{
i--;
break;
}
i=p;
}
if(s[i]!='\0')
printf("%d %d\n",p+1,p+1);
else
printf("0\n");
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。