正文

pku3302结题报告2008-08-24 10:09:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/bclz/37836.html

分享到:

pku3302结题报告水题一个题目要求:给出两个字符串,s和sub判断s是否包含了sub.包含是指s中含有sub的所有元素,并且在s中按照在sub的顺序或者逆序排列.类似于串的模式匹配问题#include <iostream>using namespace std;int main(){    char s[100];    char sub[100];    int t;    int i=0,j=0,k=0;    bool ok=1;    int cur=0;    cin>>t;    for(k=0;k<t;k++)    {        cin>>s>>sub;        int len1=strlen(s);        int len2=strlen(sub);        i=0;j=0;        while(i<len1&&j<len2)        {//正向查找            if(s[i]==sub[j])//从头开始找,如果找到相同的字符,下标同时增加            {                i++;j++;            }            else  //否则,只增加s的下标                i++;        }        if(j<len2)            ok=0;        else if(j==len2)//j==len2表示sub中的字符全部在s按顺序出现.输出"YES"后跳出本次循环        {            ok=1;            cout<<"YES"<<endl;            continue;        }        i=len1-1;j=0;//初始化下标        while(i>=0&&j<len2)        {//反向查找            if(s[i]==sub[j])            {                i--;j++;            }            else                i--;        }        if(j==len2)        {//j==len2表示sub中的字符全部在s按顺序出现.输出"YES"后跳出本次循环            ok=1;            cout<<"YES"<<endl;            continue;        }        cout<<"NO"<<endl;//所以查找都结束后仍然没有continue,说明未找到,输出"NO"    }//    system("PAUSE");    return EXIT_SUCCESS;}

阅读(2212) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册