PAT乙级—1033. 旧键盘打字(20)-native
2016-05-20 10:50
351 查看
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?
输入格式:
输入在2行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过105个字符的串。可用的字符包括字母[a-z, A-Z]、数字0-9、以及下划线“_”(代表空格)、“,”、“.”、“-”、“+”(代表上档键)。题目保证第2行输入的文字串非空。
注意:如果上档键坏掉了,那么大写的英文字母无法被打出。
输出格式:
在一行中输出能够被打出的结果文字。如果没有一个字符能被打出,则输出空行。
输入样例:
7+IE.
7_This_is_a_test.
输出样例:
_hs_s_a_tst
思路:此题不可用双重for循环会超时,这里就需要我们在坏的键数组以及应该输入的数组之间建立一个关系将O(n^2)转换成2个O(n),这里我们先遍历bad数组,ch=bad[i],如果坏了,则以bad[ch]的方式记录下是否坏了,然后去遍历should数组,ch=should[i],判断bad[ch]是否坏了,因为键坏了大小写都无法输出,我们这里用tolower转换成小写方便比较.
题目链接:
https://www.patest.cn/contests/pat-b-practise/1033
输入格式:
输入在2行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过105个字符的串。可用的字符包括字母[a-z, A-Z]、数字0-9、以及下划线“_”(代表空格)、“,”、“.”、“-”、“+”(代表上档键)。题目保证第2行输入的文字串非空。
注意:如果上档键坏掉了,那么大写的英文字母无法被打出。
输出格式:
在一行中输出能够被打出的结果文字。如果没有一个字符能被打出,则输出空行。
输入样例:
7+IE.
7_This_is_a_test.
输出样例:
_hs_s_a_tst
思路:此题不可用双重for循环会超时,这里就需要我们在坏的键数组以及应该输入的数组之间建立一个关系将O(n^2)转换成2个O(n),这里我们先遍历bad数组,ch=bad[i],如果坏了,则以bad[ch]的方式记录下是否坏了,然后去遍历should数组,ch=should[i],判断bad[ch]是否坏了,因为键坏了大小写都无法输出,我们这里用tolower转换成小写方便比较.
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int main(){ char bad[300]={0}; char ch,should[100010]; gets(bad); gets(should); int len1=strlen(bad); for(int i=0;i<len1;i++){//将字符作为bad数组下标与should数组建立对应关系 ch=bad[i]; bad[tolower(ch)]=true; } int len2=strlen(should);//将strlen拿到外面去,否则每次循环都判断一次,超时 for(int i=0;i<len2;i++){//判断该字符是否可以输出 ch=should[i]; if(!bad[tolower(ch)]){//如果没坏的话,输出 if(bad['+']&&(ch>='A'&&ch<='Z'))//bad['+']是true表示+坏了,而且输入大写的话则跳过这个字符 continue; printf("%c", ch); } } return 0; }
题目链接:
https://www.patest.cn/contests/pat-b-practise/1033
相关文章推荐
- eclipse 集成插件 TM RSE Remote Systems
- c#验证码
- JavaScript 基础(六) 数组方法 闭包
- 学习笔记之ulimit
- json 模块
- json 模块
- C++第6次实验——项目一输出星号图
- Ubuntu 安装Nginx服务 并搭建文件服务器
- 并发同步器 CountDownLatch的用法
- android View层的绘制流程
- 【DirectX11】第七篇 光照模型——环境光
- [疯狂Java]基础类库:String
- lintcode ----子树
- android windwsManager 类型
- javascript 特效实现(3)—— 鼠标滑过显示二级菜单效果
- [团队项目]SCRUM项目6.0 7.0 (新)
- 服务器证书安装配置指南(IIS7)
- 找水王
- 通过web.xml解读SSH启动与运行过程(1)
- aspnet_regiis.exe命令使用方法