1033 旧键盘打字

来源:互联网 发布:unity 引擎源码 编辑:程序博客网 时间:2024/05/02 01:06

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

输入格式:

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

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

输出格式:

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

输入样例:
7+IE.7_This_is_a_test.
输出样例:

_hs_s_a_tst

#include<iostream>#include<string>#include<stdio.h>#include<vector>using namespace std;int main(){for(string broken,output;getline(cin,broken)&&getline(cin,output);){int word[26]={0};int number[10]={0};int sign[5]={0};//以及下划线“_”(代表空格)、“,”、“.”、“-”、“+”(代表上档键)for(int i =0;i<broken.length();i++){if(broken[i] >= '0'&& broken[i] <= '9'){number[broken[i] - '0']++;}else if(broken[i] >= 'A'&& broken[i] <= 'Z'){word[broken[i] - 'A']++;}else{switch (broken[i]){case '_':sign[0]++;break;case ',':sign[1]++;break;case '.':sign[2]++;break;case '-':sign[3]++;break;case '+':sign[4]++;break;default:break;}}}for(int i =0;i < output.length();i++){if(output[i] >= '0' && output[i] <= '9'){if(!number[output[i] - '0']){cout<<output[i];}}else if(output[i] >= 'a' && output[i] <= 'z'){if(!word[output[i] - 'a']){cout<<output[i];}}else if(output[i] >= 'A' && output[i] <= 'Z'){if(!word[output[i] - 'A'] && !sign[4]){cout<<output[i];}}else{switch (output[i]){case '_':if(!sign[0]){cout<<output[i];}break;case ',':if(!sign[1]){cout<<output[i];}break;case '.':if(!sign[2]){cout<<output[i];}break;case '-':if(!sign[3]){cout<<output[i];}break;case '+':if(!sign[4]){cout<<output[i];}break;default:break;}}}cout<<endl;}return 0;}/*考虑第一行输入为空行的情况*/


0 0
原创粉丝点击