[YTU](2278)判断是否是子串(串) ---字符串匹配(串)

来源:互联网 发布:centos安装开发工具包 编辑:程序博客网 时间:2024/06/08 09:29

2278: 判断是否是子串(串)

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 30  Solved: 15
[Submit][Status][Web Board]

Description

设s、t为两个字符串,分别放在两个一维数组中,m、n分别为其长度,判断t是否为s的子串。如果是,输出子串所在位置(第一个字符),否则输出0。

Input

输入  长度m和n,字符串s和t

Output

子串所在的位置

Sample Input

5 3adsffdsf

Sample Output

2



AC代码:暴力匹配算法
#include<iostream>#include<cstring>using namespace std;int m,n;int violentMatch(char *s,char *p){    int i=0;    int j=0;    while(i<m && j<n)    {        if(s[i]==p[j])        {            i++;            j++;        }        else if(s[i]!=p[j])        {            i=i-(j-1);            j=0;        }    }    if(j==n)        return i-j+1;    else        return 0;}int main(){    char s[100];    char p[100];    cin>>m>>n;    for(int i=0;i<m;i++)        cin>>s[i];    for(int i=0;i<n;i++)        cin>>p[i];    int r=violentMatch(s,p);    cout<<r<<endl;    return 0;}


原创粉丝点击