zoukankan      html  css  js  c++  java
  • A1092

    可输入内容为0-9,a-z,A-Z。

    输入:

            第一行输入任意字符串;

            第二行输入期望字符串。

    输出:

            如果第一行包含了所有期望字符串,输出yes和多余字符个数;

            如果第一行不能完全包含期望字符串,输出缺失的字符个数。

    思路:

            记录第一行字符串每种字符个数,用HashTable数组记录;

            遍历第二行字符串,遍历一个就在HashTable里对应的元素-1,如果HashTable<0,miss++;

            miss>0,则输出no,反之则输出yes。

     1 #include<cstdio>
     2 #include<cstring>
     3 const int maxn=1010; 
     4 //第一个字符串中每种字符个数,miss为缺少的字符个数 
     5 int hashTable[80]={0},miss=0;
     6 //输入的字母和数字转化为HashTable的下标 
     7 int change(char c){
     8     if(c>='0'&&c<='9') return c-'0';
     9     if(c>='a'&&c<='z') return c-'a'+10;
    10     if(c>='A'&&c<='Z') return c-'A'+36;
    11 }
    12 
    13 int main(){
    14     char wh[maxn],tar[maxn];
    15     scanf("%s",wh);
    16     scanf("%s",tar);
    17     int len1=strlen(wh);
    18     int len2=strlen(tar);
    19     for(int i=0;i<len1;i++){//第一串中的每种字符串个数 
    20         int id=change(wh[i]);
    21         hashTable[id]++;
    22     }
    23     for(int i=0;i<len2;i++){
    24         int id=change(tar[i]);
    25         hashTable[id]--;
    26         if(hashTable[id]<0) miss++;
    27     }
    28     if(miss>0) printf("No %d
    ", miss);
    29     else printf("Yes %d
    ", len1-len2);
    30     return 0; 
    31 } 

           

  • 相关阅读:
    IDEA快捷键
    关于redis key命名规范的设计 【转载】
    Mybatis数据源与连接池 【转载】
    通过缓冲区读文件和非缓冲区读文件有什么区别
    BCB6 使用正则表达式的例子
    QT在子窗口外单击关闭子窗口
    QT5 中文乱码
    QT 鼠标右键菜单
    关于线程池的几个问题
    关于ConcurentHashMap的几个问题
  • 原文地址:https://www.cnblogs.com/Lynn-2019/p/10386314.html
Copyright © 2011-2022 走看看