PAT-B 1033. 旧键盘打字(20)
来源:互联网 发布:云联惠平台下载软件 编辑:程序博客网 时间:2024/06/05 05:59
题目链接在此。
思路
再读入时,用一个HashTable数组保存键盘的好坏情况,需要注意“+”上档键的情况;在输出可以输出的时候,判断键是好的则输出即可。
AC代码
#include<stdio.h>#include<string.h>char s2[100010]; int main(){ char s1[100] ; bool HashTable[256]; int len; //init for HashTable// for(int i = 0; i < 128; i++){// HashTable[i] = true;// } memset(HashTable, true, sizeof(HashTable)); gets(s1); gets(s2);// len = strlen(s1); for(int i = 0 ; i < strlen(s1); i++){ char c = s1[i]; HashTable[c] = false; if(c == '+'){ //上档键坏了 char temp; for(temp = 'A'; temp <= 'Z'; temp++){ HashTable[temp] = false; //所有大写字母都不能输出 } }else{ //上档键没坏 if(c >= 'A' && c <= 'Z'){ //如果是大写字母,则相应的小写字母也是坏的 c = s1[i]-'A'+'a'; //准换成小写字母 HashTable[c] = false; //对应的小写字母也不能输出,因为是同一个键 } } } len = strlen(s2); for(int i = 0; i < len; i++){ char c = s2[i]; if(HashTable[c] == true){ //此时c字符没坏 printf("%c",c); } } printf("\n"); return 0; }
掉坑!!
记得把strlen(str)求得的长度用一个变量保存起来,减少计算次数!
这个题如果不保存,直接写在for循环里,最后一个测试点运行超时!
0 0
- PAT-B 1033. 旧键盘打字(20)
- PAT-B 1033. 旧键盘打字
- PAT-B 1033. 旧键盘打字
- PAT 1033. 旧键盘打字(20)
- PAT(BASIC)1033. 旧键盘打字(20)
- PAT Basic 1033. 旧键盘打字(20)
- 【PAT】1033. 旧键盘打字(20)
- PAT-乙级-1033. 旧键盘打字(20)
- Java - PAT - 1033. 旧键盘打字(20)
- PAT乙级.1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20) PAT乙级
- PAT 乙级 1033. 旧键盘打字(20)
- PAT乙级1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)-PAT乙级
- PAT 乙级 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20) PAT
- PAT刷题:1033. 旧键盘打字(20)
- PAT乙级 1033. 旧键盘打字(20)
- 【error】intellij idea报错处理
- Activity 中mParent 成员变量是如何被赋值的
- Android调试时华为手机不打印logcat的问题
- C#调用外部程序结束后触发事件
- Tinywebserver-一个简易的web服务器
- PAT-B 1033. 旧键盘打字(20)
- hashCode和hash值
- 快速排序的一种实现方法
- C/C++学习之路之C及C++发展史及标准
- 日历组件demo
- 遍历二叉树
- Appium Appium 开发环境搭建 (1)--配置源码运行环境
- [swift]5.0控制语句
- Android LayoutInflater加载.xml文件原理分析