zoukankan      html  css  js  c++  java
  • PAT-乙级-1033 旧键盘打字

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?

    输入格式:

    输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 105个字符的串。可用的字符包括字母 [a-zA-Z]、数字 0-9、以及下划线 _(代表空格)、,.-+(代表上档键)。题目保证第 2 行输入的文字串非空。

    注意:如果上档键坏掉了,那么大写的英文字母无法被打出。

    输出格式:

    在一行中输出能够被打出的结果文字。如果没有一个字符能被打出,则输出空行。

    输入样例:

    7+IE.
    7_This_is_a_test.
    

    输出样例:

    _hs_s_a_tst


    分析:
      建立一个字符数组ch[200]来模拟集合操作
      将坏键存储在ch[200]里,比如'a'坏了,则ch['a']=1
      接着判断第二行的字符在不在ch里即可
      PS:
        ch里有'+'时,所有大写字母均不能打出
        第一行可能会为空,这时不能用cin>>来读取,需用getline或cin.getline


     1 //c++
     2 #include<iostream>
     3 using namespace std;
     4 
     5 int main(){
     6   char s1[100010],s2[100010];
     7   int book[200]={0},f=1;
     8   cin.getline(s1,100010);
     9   cin.getline(s2,100010);
    10   for(int i=0;s1[i]!='';i++)
    11     book[int(s1[i])]=1;
    12   for(int i=0;s2[i]!='';i++){
    13     if(book[int(s2[i])])
    14       continue;
    15     if('a'<=s2[i]&&s2[i]<='z')
    16       if(book[int(s2[i])-32])
    17         continue;
    18     if('A'<=s2[i]&&s2[i]<='Z')
    19       if(book['+'])
    20         continue;
    21     cout<<s2[i];
    22     f=0;
    23   }
    24   if(f)
    25     cout<<endl;
    26   return 0;
    27 }
     
  • 相关阅读:
    K8s网络插件flannel与calico
    calico部署与网卡绑定
    脚本基本函数
    k8s迁移工具-helm
    mysql不识别中文
    日志收集系统对比
    VM虚拟机安装后的网络设置
    微擎目录结构介绍
    amazeui笔记-web组件
    jQuery 数据
  • 原文地址:https://www.cnblogs.com/tenjl-exv/p/9862169.html
Copyright © 2011-2022 走看看