现在的位置: 首页 > 综合 > 正文

查询成绩

2018年02月22日 ⁄ 综合 ⁄ 共 968字 ⁄ 字号 评论关闭

题目描述

波波同学是位大四的学生,同时也是一位考研er。为了考上北京邮电大学,他准备了很长时间。不久前,考研成绩终于公布了。波波登陆了成绩查询网站,发现自己密码竟然忘记了!但是幸好,他还记得其中的某些字母。请你判断,他记忆中的字母是否是正确密码的片段。

输入

多组样例,每组样例有两行。第一行为正确密码,第二行为波波记得的密码片段,'*'号表示波波不知道的密码片段,可能任意长,也可能为零。每行不超过110字符,首尾不会出现'*'。

输出

对于每组样例,能得到正确密码的输出yes,不能的输出no。

样例输入

abcdefg
ab*f
fnoeend
f*ed
ajfneogbb
aj*n*b

样例输出

yes

no

yes

 

仅作参考:

#include<stdio.h>
#include<string.h>
int main()
{
    char str[115],ch[115];
    int i,j,lens,lenc,flog,flag;
    while(scanf("%s",str)>0)
    {
        getchar();
        scanf("%s",ch);
        lens=strlen(str);
        lenc=strlen(ch);
        flog=1;flag=0;

        for(i=0,j=0;i<lens&&j<lenc;i++,j++)
        if(str[i]!=ch[j]&&ch[j]!='*'&&flag==0)
        {
            flog=0;break;
        }
        else if(ch[j]=='*')
        {
            for(j=j+1;j<lenc;j++)
            if(ch[j]!='*')
            break;
            flag=1; i--; j--;
        }
        else if(flag==1)
        {
            flag=0;
            int t1,t2;
            for(i=i;i<lens;i++)
            {
                t1=i; t2=j;
                for(;t2<lenc;t1++,t2++)
                if(ch[t2]!=str[t1])
                break;

                if(t2==lenc||ch[t2]=='*')
                {
                    i=t1-1;j=t2-1;
                    break;
                }

            }

            if(i==lens)
                {
                    flog=0; break;
                }
        }

        if(flog)
        printf("yes\n");
        else
        printf("no\n");
    }
    return 0;
}
/*
dskajfajfdkkdsj
ds***fdk*j
djfksaljfdklfjkdsljfklsdjf
djf*dk*djfds*djf
*/

 

 

抱歉!评论已关闭.