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;
    } 


  • 相关阅读:
    git常用指令 github版本回退 reset
    三门问题 概率论
    如何高效的学习高等数学
    数据库6 关系代数(relational algebra) 函数依赖(functional dependency)
    数据库5 索引 动态哈希(Dynamic Hashing)
    数据库4 3层结构(Three Level Architecture) DBA DML DDL DCL DQL
    梦想开始的地方
    java String字符串转对象实体类
    java 生成图片验证码
    java 对象之间相同属性进行赋值
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273609.html
Copyright © 2011-2022 走看看