朴素的模式匹配(串)

朴素的模式匹配(串)

时间: 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;  
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注