hdu 5311 Hidden String

来源:互联网 发布:知乎怎么找到匿名回答 编辑:程序博客网 时间:2024/05/13 05:51

字符串中是否存在三个连续的区间,由其组成anniversary。


解法:暴力枚举前两个区间长度。

竟然还有strncmp这个函数。这样的话写起来就简洁方便多了。


#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;typedef __int64 LL;char s0[20]="anniversary",s[105];int main(){    int t,i,j,k;    cin>>t;    bool flag;    while(t--)    {        flag=0;        cin>>s;        int l=strlen(s);        for(i=1;i<=9&&!flag;++i)        {            for(j=1;(i+j)<=10;++j)            {                k=0;                while(k<l&&strncmp(s0,s+k,i)!=0) ++k;                if(k==l) continue;                k+=i;                while(k<l&&strncmp(s0+i,s+k,j)!=0) ++k;                if(k==l) continue;                k+=j;                while(k<l&&strncmp(s0+i+j,s+k,11-i-j)!=0) ++k;                if(k<l){                    flag=1;                    break;                }            }        }        if(flag) puts("YES");        else puts("NO");    }    return 0;}


0 0
原创粉丝点击