PAT (Basic Level) Practice 1033 旧键盘打字
2019-01-23 13:14
351 查看
版权声明:copyright©CodeIover reserved https://blog.csdn.net/qq_40073459/article/details/86608363
1033 旧键盘打字
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?
输入格式:
输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 105 个字符的串。可用的字符包括字母 [
a-
z,
A-
Z]、数字
0-
9、以及下划线
_(代表空格)、
,、
.、
-、
+(代表上档键)。题目保证第 2 行输入的文字串非空。
注意:如果上档键坏掉了,那么大写的英文字母无法被打出。
输出格式:
在一行中输出能够被打出的结果文字。如果没有一个字符能被打出,则输出空行。
输入样例:
[code]7+IE. 7_This_is_a_test.
输出样例:
[code]_hs_s_a_tst
实现代码:
[code]#include<stdio.h> #include<string.h> #include<stdbool.h> #define maxn 100010 bool hashTable[256]; char str[maxn]; int main() { memset(hashTable,true,sizeof(hashTable)); gets(str); int len = strlen(str); for(int i=0;i<len;i++) { if(str[i]>='A'&&str[i]<='Z') { str[i]=str[i]-'A'+'a'; } hashTable[str[i]]=false; } gets(str); len=strlen(str); for(int i=0;i<len;i++) { if(str[i]>='A'&&str[i]<='Z') { int low=str[i]-'A'+'a'; if(hashTable[low]==true&&hashTable['+']==true){ printf("%c",str[i]); } }else if(hashTable[str[i]]==true) { printf("%c",str[i]); } } printf("\n"); return 0; }
结果如下:
注意:
const和define的区别,在xxx.c下define定义常量编译没有问题,但是用const就会产生编译问题;在xxx.cpp下const定义没有问题常量。
相关文章推荐
- Pat(Basic Level)Practice--1033(旧键盘打字)
- PAT BASIC LEVEL 1033. 旧键盘打字(20)
- PAT Basic Level 1033 旧键盘打字 (20 分)???
- PAT (Basic Level) Practise (中文)1033. 旧键盘打字(20) C语言
- PAT (Basic Level) Practise (中文)1033. 旧键盘打字(20)
- PAT(basic level) 1033 旧键盘打字(20)
- PAT (Basic Level) Practise:1033. 旧键盘打字
- PAT (Basic Level)1033. 旧键盘打字
- PAT (Basic Level) Practise (中文) 1033. 旧键盘打字(20)
- PAT(Basic Level)_1033_旧键盘打字
- PAT (Basic Level) Practise (中文)-1033. 旧键盘打字(20)
- PAT Basic Level 1033 旧键盘打字 (20 分)
- PAT (Basic Level) Practise (中文)1033. 旧键盘打字(20)
- PAT (Basic Level) Practice 1029 旧键盘(20)(C语言实现)
- 【再思考】PATBasic——1033. 旧键盘打字(20)
- PAT(BASIC)1033. 旧键盘打字(20)
- PAT Basic 1033. 旧键盘打字(20)
- PAT乙级(Basic Level)真题 >旧键盘打字
- PAT Basic 1033. 旧键盘打字(20)(C语言实现)
- Pat(Basic Level)Practice--1029(旧键盘)