• PAT 1033.旧键盘打字


    PAT 1033. 旧键盘打字

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

    输入格式:

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

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

    输出格式:

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

    输入样例:

    7+IE.
    7_This_is_a_test.
    

    输出样例:

    _hs_s_a_tst
    

    代码如下

    #include<iostream>
    #include<algorithm>
    #include<cctype>
    using namespace std;
    int main(){
    	string broken,input;
    	int shift=0,flag=0;
           getline(cin,broken); // 不能用cin,防止没有键坏了,即输入的第一行为空ԅ(¯﹃¯ԅ)
           getline(cin,input);
    	auto it=find(broken.begin(),broken.end(),'+');
    	if(it!=broken.end())
    	shift=1;
    	it=find(broken.begin(),broken.end(),'_');
    	char c;
    	for(it=input.begin();it<input.end();it++){
    		int tag=1;
    		if(shift==1&&isupper(*it)) continue;
    	    for(auto b=broken.begin();b<broken.end();b++){
    	    if(islower(*it)){
    	      c=toupper(*it);
    		}
    		else c=*it;
    	    if(c==*b) tag=0;
    		} 
    		if(tag==1) {cout<<*it; flag=1;}
    	}
        if(flag) cout<<endl;
    	return 0;
    } 
    
  • 相关阅读:
    自己的一个ALV隐藏列例子
    BAPI FOR MD61,MD62,MD63
    ALV 实现多表格 ( 多表格的ALV List
    MESSEG 类型
    Linux 启动tomcat服务器2
    oracle 笔记记录
    昨天、今天、明天
    Linux操作系统下MySQL数据库的使用方法(345)
    PHP安装问题
    另样文字 借你来欣赏
  • 原文地址:https://www.cnblogs.com/A-Little-Nut/p/8110781.html
Copyright © 2020-2023  润新知