PAT B1033 旧键盘上的几个键又毁坏了,于是在输入一段文字时,对应得的字符就不会出现。
题中可用的字母包括大小写(给出的坏键的字母,全为大写),数字,"_" “,” “.” “-” “+”,并且用“+”号代表上档键即(SHIFT)。
输入的两行中分别给出那些坏掉的键,以及应该输出的文字。
输出可以出现的结果文字
分析:
1.给出的坏键的字母全为大写,因此为了统一写法应该先转化为小写,这样小写与大写都无法输出了(符合实际)
2.再给出应该出现的字符串时,如有大写字母应该保证其小写字母的键位与上档键(“+”)同时完好才能输出,并且应该输出大写字母,若只有小写字母完好,则输出的为小写。
1 #include<cstdio>
2 #include<cstring>
3 const int maxn = 100010;
4 bool hashTable[256];
5 char str[maxn];
6 int main() {
7 memset(hashTable, true, sizeof(hashTable));//初始全部定true,表示键全部完好。
8 gets_s(str);//输入坏掉的键
9 int len = strlen(str);
10 for (int i = 0; i < len; i++) {
11 if (str[i] >= 'A' && str[i] <= 'Z') {//先将字母键位全部转换为小写,方便之后判断是否输出
12 str[i]+= 32;
13 }
14 hashTable[str[i]] = false; //将坏了的键全部标记住。
15 }
16 gets_s(str); //输入应该输入的字符串
17 len = strlen(str);
18 for (int i = 0; i < len; i++) {
19 if (str[i] >= 'A' && str[i] <= 'Z') {
20 int temp = str[i] + 32;
21 if (hashTable[temp] == true && hashTable['+'] == true) {//只有该字母键与上档键全部完好,才可以进行输出大写字母
22 printf("%c", str[i]);
23 }
24 }
25 else if (hashTable[str[i]] == true) {
26 printf("%c", str[i]);//其他键位只要完好便可以输出
27 }
28 }
29 printf("\n");
30 return 0;
31 }
PAT B1033 旧键盘上的几个键又毁坏了,于是在输入一段文字时,对应得的字符就不会出现。的更多相关文章
- PAT B1033 旧键盘打字 (20 分)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键.以及应该输入 ...
- B1029/A1048 旧键盘损坏了,在输入一段文字时坏了的键不可以正常使用,现给出应输入的一段文字,和实际输出的文字,找出坏掉的键。
#include<cstdio> #include<cstring> const int maxn = 1000; bool HashTable[maxn] = { false ...
- PAT 1033. 旧键盘打字(20)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2行中分别给出坏掉的那些键.以及应该输入的文 ...
- PAT 1029. 旧键盘(20)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在2行中分别给出应该输入的文字.以及实际 ...
- PAT 1033 旧键盘打字
https://pintia.cn/problem-sets/994805260223102976/problems/994805288530460672 旧键盘上坏了几个键,于是在敲一段文字的时候, ...
- PAT 1029 旧键盘
https://pintia.cn/problem-sets/994805260223102976/problems/994805292322111488 旧键盘上坏了几个键,于是在敲一段文字的时候, ...
- PAT 1029 旧键盘(20)(代码)
1029 旧键盘(20)(20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 ...
- PAT 1033 旧键盘打字(20)(20 分)
1033 旧键盘打字(20)(20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2 ...
- PAT B1029 旧键盘 (20 分)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 行中分别给出应该输入的文字.以及 ...
随机推荐
- 自定义Edit 样式 简便写法
1 <?xml version="1.0" encoding="utf-8"?> 2 <selector xmlns:android=&quo ...
- 13_MySQL如何去除结果集中的重复记录
本节所涉及的sql语句 -- 去除结果集中的重复记录 SELECT job FROM t_emp; SELECT DISTINCT job FROM t_emp; SELECT DISTINCT jo ...
- A study on ILC for linear discrete systems with single delay
论文题目就是随笔的题目,以后的随笔的命名都是如此,特此说明. 论文的主要内容是偏理论研究的,引入了离散矩阵延迟指数函数,来处理具有单时滞线性离散系统.对于离散延迟矩阵指数函数其定义为: \[e_{m} ...
- Basic认证时添加请求头
http Basic认证 http协议定义的一种认证方式,将客户端id和客户端密码按照"客户端ID:客户端密码"的格式拼接,并用base64编 码,放在header中请求服务端, ...
- JS数组的常用属性或方法
1.length 数组长度 计算数组的长度 var arr=[1,2,3,4,5]; console.log(arr.length);//输出结果是5 2. push() 添加元素 向数组尾部添加新元 ...
- JPEG解码——(5)反量化和逆ZigZag变换
本篇是该系列的第五篇,承接上篇huffman解码,介绍接下来的两个步骤--反量化和逆zigzag变换,即IDCT前的两个步骤. 需要说明的是,这两个步骤可以颠倒,本人的实现是,先反量化,再逆ZigZa ...
- [个人总结]利用grad-cam实现人民币分类
# -*- coding:utf-8 -*- import os import numpy as np import torch import cv2 import torch.nn as nn fr ...
- MyBatis(二):自定义持久层框架思路分析
使用端 引入架构端Maven依赖 SqlMapConfig.xml-数据库配置信息(数据库连接jar名称.连接URL.用户名.密码),引入Mapper.xml的路径 XxMapper.xml-SQL配 ...
- FreeBSD 镜像站问题 @2021
主要问题在于官方无论如何也不开放 rsync 且不接受镜像站的官方二级镜像申请. 多次联系均无二次联系,如邮件列表,大概五次,其中三次回应,两次无回应.其主要回复内容为"深表歉意,但台湾地区 ...
- JavaCV 采集摄像头及桌面视频数据
javacv 封装了javacpp-presets库很多native API,简化了开发,对java程序员来说比较友好. 之前使用JavaCV库都是使用ffmpeg native API开发,这种方式 ...