PAT (Basic Level) Practise (中文)-1033. 旧键盘打字(20)
PAT (Basic Level) Practise (中文)-1033. 旧键盘打字(20) http://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 题目信息整理:
1. 应该输入的文字中可能出现的字符有:a-z,A-Z,_(代表空格),‘,’,‘.’,‘-’。
2. 坏掉的键中除了上条出现的字符外,还有一个上档键,用'+'表示。如果‘+’号出现,则大写的字符无法被敲出来。
3. 如果没有字符显示,则输出空行。 分析:
1. 可能出现的字符只有 26+26+4 个,再加上上档键,所以第一行最多有 26+26+4+1 个字符 ,所以用hash表标记能否显示即可。
如果一个大写字母出现,则表示这个大写字母对应的小写字母的按键已损坏,则大小写都无法显示;如果上档键损坏,则大写字母全部无法显示。
2. 第二行字符串的字符,hash表中标记为无法显示,则不显示;未标记,则可以显示。所以,读一个字符处理一个即可,无须开内存。
处理的过程就是判断能否显示,可以显示的话则显示。
3. 需要标记是否有字符输出。没有的话,输出空行 第二次刷题:
#include<cstdio>
int main()
{
char tempchar=,badkeys[]={},haveprint=;//'\0'是c/c++语言中的字符串结束符,在ASCII字符集中对应数字0 while(scanf("%c",&tempchar) && '\n'!=tempchar)
{
if('A'<=tempchar && tempchar<='Z' ) badkeys[tempchar]=,tempchar+='a'-'A';//某一个英文字母的大写形式出现,则其大写和小写都无法显示
badkeys[tempchar]=;
}
if(badkeys['+'])for(int i='A';i<='Z';i++) badkeys[i]=;//'+'出现,即上档键损坏,所有大写都无法显示 while(scanf("%c",&tempchar) && '\n'!=tempchar)
if(!badkeys[tempchar]) printf("%c",tempchar),haveprint=; if(!haveprint) printf("\n");
return ;
}
第一次刷题:
#include<stdio.h>
#include<string.h>
int main()
{
char badkey[];
char strtrue[];
gets(badkey);gets(strtrue); int istr=,canout=,num=,len=strlen(badkey);
while(strtrue[istr])
{
canout=;
for(int i=;i<len;i++)
{
if(strtrue[istr]==badkey[i])
canout=;
else if('A'<=strtrue[istr] && strtrue[istr]<='Z' && badkey[i]=='+')
canout=;
else if('a'<=strtrue[istr] && strtrue[istr]<='z' && strtrue[istr]-'a'+'A'== badkey[i])
canout=;
}
if(canout)
{
printf("%c",strtrue[istr]);
num++;
}
istr++;
}
if(!num) printf("\n");
return ;
}
PAT (Basic Level) Practise (中文)-1033. 旧键盘打字(20)的更多相关文章
- PAT (Basic Level) Practise:1033. 旧键盘打字
[题目链接] 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2行中分别给出坏掉的那些键.以 ...
- PAT (Basic Level) Practise:1029. 旧键盘
[题目链接] 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在2行中分别给出应该输入的 ...
- PAT乙级 1033. 旧键盘打字(20)
1033. 旧键盘打字(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文 ...
- PAT 1033 旧键盘打字(20)(20 分)
1033 旧键盘打字(20)(20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2 ...
- PAT-乙级-1033. 旧键盘打字(20)
1033. 旧键盘打字(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文 ...
- PAT (Basic Level) Practice (中文)1033 旧键盘打字 (20 分)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键.以及应该输入 ...
- PAT Basic 1033 旧键盘打字 (20 分)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键.以及应该输入 ...
- PAT 1033. 旧键盘打字(20)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2行中分别给出坏掉的那些键.以及应该输入的文 ...
- 1033 旧键盘打字 (20 分)C语言
题目描述 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入描述: 输入在2行中分别给出坏掉的那些键.以及应 ...
随机推荐
- 一个github搞定微信小程序支付系列
详情请前往github下载示例代码 源码中包含 支付.退款 功能 so easy,项目经理再也不用担心微信支付啦 是的,已经over了
- Solve Tree Problems Recursively
"Top-down" Solution Here is the pseudocode for the recursion function maximum_depth(root, ...
- String.Format 大全
0.0的格式化 string.Format("{0:8D8}", 3)//第一个8表示空8个位置,后一个8表示用0填写最多8位数据 1.格式化货币(跟系统的环境有关,中文系统默认格 ...
- JS中的柯里化(currying) 转载自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]
JS中的柯里化(currying) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpr ...
- java并发编程(一)
java并发编程(一) 线程基础 在Java代码中,单独创建线程,都需要使用类java.lang.Thread,通常可以通过集成并扩展Thread的run()方法,也可以来创建一个Thread,将一个 ...
- perl 操作文件指针
之前使用perl 脚本写了一个读取文件的小工具,但是由于当时使用的Tie 的方式,在处理大文件时,效率并不十分理想,所以在网上搜索了perl 如何操作文件指针的文章,自己也学习一下,本博客就是学习过程 ...
- maven - settings.xml文件详解
Settings.xml配置文件详解 maven默认的settings.xml是一个包含注释和例子的模板,可以快速的修改settings.xml文件 maven安装后不会在用户目录下自动生成setti ...
- ZOJ 4033 CONTINUE...?(The 15th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple)
#include <iostream> #include <algorithm> using namespace std; ; int a[maxn]; int main(){ ...
- cmd 查看端口占用情况
netstat -nao|findstr 端口号 打开任务管理器查看
- java数据结构----图
1.图:.在计算机程序设计中,图是最常用的数据结构之一.对于存储一般的数据问题,一般用不到图.但对于某些(特别是一些有趣的问题),图是必不可少的.图是一种与树有些相像的数据结构,从数学意义上来讲,树是 ...