zoukankan      html  css  js  c++  java
  • 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;
    } 
    
  • 相关阅读:
    ACID
    Elasticsearch SQL
    【协议】AAA Radius协议的常用报文分析
    【linux】内核-模块(驱动)命令原理
    【linux】masm汇编系统调用说明
    pytest 8+.yaml文件详解---实现接口自动化
    谷歌 Chrome 浏览器将迎来设计、媒体播放控件改进
    长期免费的通配符证书获取 2021年最新方法
    Flink:部署运行
    Linux:nc命令
  • 原文地址:https://www.cnblogs.com/A-Little-Nut/p/8110781.html
Copyright © 2011-2022 走看看