zoukankan      html  css  js  c++  java
  • zzulioj--1804--ZY学长的密码(字符串)

    1804: ZY学长的密码

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 140  Solved: 53

    SubmitStatusWeb Board

    Description

    zy比较粗心大意,经常忘记一些帐号的密码。
    这不他的校园卡密码又给忘记了,但是他依稀记得关于密码的一些字符。
    例如zy能够记得的校园卡密码是“zsdf**dafs**”,其中“*"位置代表的字符是他忘记的。
    现在下面有n组密码,有多少组可能是zy密码,你能帮助他吗?不然他都吃不上饭了。(假如zy的密码是“abc*”,则“abcf”可能是他的密码,“abcd”也可能是他的密码。)

    Input

    第一行为数字T(1<=T<=100),表示有T组测试数据。
    每组测试数据第一行为一串字符,表示zy能够记得的密码(密码可能包含空格,标点符号,长度不超过100,但无其他特殊字符)。
    第二行为数字n(1<=n<=100),表示有n个密码,随后n行,每行有一串字符,表示一个密码。

    Output

    输出n个密码中可能是zy的密码的个数。

    Sample Input

    2
    abc*
    3
    abcaabcdeab
    abcd*fs*
    3abcd
     fsaabcdsfsbabcdfs

    Sample Output

    1
    2


    有一点比较坑,字符串里可能会有‘ ’,所以不要用%s输入

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int a[100];
    char s[100],ss[100];
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    		int n;
    		int cnt=0;
    		memset(a,0,sizeof(a));
    		scanf("%s",ss);
    		int len=strlen(ss);
    		for(int i=0;i<len;i++)
    		if(ss[i]=='*') 
    		a[i]=1;
    		scanf("%d",&n);
    		getchar(); 
    		while(n--)
    		{
    			memset(s,'',sizeof(s));
    			gets(s);
    			int l1=strlen(s);
    			if(len==l1)
    			{
    				for(int i=0;i<l1;i++)
    				{
    					if(a[i])
    					s[i]=ss[i];
    				}
    				if(strcmp(ss,s)==0)
    				cnt++;
    			}
    		}
    		printf("%d
    ",cnt);
    	}
    	return 0;
    } 


  • 相关阅读:
    CSUST 8.4 早训
    CSUST 8.5 早训
    hdu1542 Atlantis 线段树--扫描线求面积并
    hdu1540 Tunnel Warfare 线段树/树状数组
    hdu1535 Invitation Cards 最短路
    hdu1358 Period KMP
    SQL Server 向数据库中创建表并添加数据
    初次实践数据库--SQL Server2016
    hdu1301 Jungle Roads 最小生成树
    hdu1281 棋盘游戏 二分图最大匹配
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273609.html
Copyright © 2011-2022 走看看