P 1029 旧键盘
转跳点:
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。
输入格式:
输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。
输出格式:
按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有 1 个坏键。
输入样例:
7_This_is_a_test
_hs_s_a_es
输出样例:
7TI
这道题一开始我想要双字符数组然后用优化后的KMP进行比较的,写着写着发现这些字符一共ASCII一共就128,开128个桶也不浪费空间,那干脆计数呗,将输入的字母转化成大写字母的函数,在ctype中有,可以自行了解。
如果不用计数法,要注意一下空格损坏的情况,还有就是没有损坏的情况
代码:
#include <stdio.h>
#include <ctype.h> int main()
{
int keyboard[128] = {0};
char str[81], ch;
int i;
scanf("%s\n", str); //第二次输入的字符串为进行计数
while ('\n' != (ch = getchar()))
{
keyboard[toupper(ch)] = 1;
} //完整比与统计数组比较,如果没有置1,且原字符串中含有该字符则代表按键损坏
i = 0;
while ('\0' != str[i])
{
ch = toupper(str[i]);
if (keyboard[ch - '\0'] == 0)
{
putchar(ch);
keyboard[ch - '\0'] = -1;
}
i++;
} return 0;
}
真心没啥好说的,C++,逻辑无比简单
#include <iostream>
#include <string>
#include <cctype> using namespace std; int main()
{
string s1, s2, ans;
cin >> s1 >> s2;
for (int i = 0; i < s1.length(); i++)
{
if (s2.find(s1[i]) == string::npos && ans.find(toupper(s1[i])) == string::npos)
{//s2中不为空,答案中不存在
ans += toupper(s1[i]);
}
} cout << ans;
return 0;
}
PTA不易,诸君共勉!
P 1029 旧键盘的更多相关文章
- PAT乙级 1029. 旧键盘(20)
1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的 ...
- PAT-乙级-1029. 旧键盘(20)
1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的 ...
- PAT 乙级 1029 旧键盘(20) C++版
1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的 ...
- PAT 1029 旧键盘(20)(代码)
1029 旧键盘(20)(20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 ...
- PAT (Basic Level) Practise (中文)-1029. 旧键盘(20)
PAT (Basic Level) Practise (中文)-1029. 旧键盘(20) http://www.patest.cn/contests/pat-b-practise/1029 旧键盘上 ...
- 图论 - PAT乙级 1029 旧键盘 (C++ python3)
PAT甲级 1029 旧键盘 (C++ python3) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. ...
- PAT(B) 1029 旧键盘(Java)字符串
题目链接:1029 旧键盘 (20 point(s)) 题目描述 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的 ...
- PAT——1029. 旧键盘
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在2行中分别给出应该输入的文字.以及实际 ...
- PAT 1029. 旧键盘(20)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在2行中分别给出应该输入的文字.以及实际 ...
随机推荐
- ORACLE 删除重复的数据
内容转自:https://www.cnblogs.com/zfox2017/p/7676237.html 查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据 ...
- docker学习笔记-05:DockerFile解析
一.DockerFile是什么 1.DockerFile是用来构建docker镜像的构建文件,是由一系列参数和命令构成的脚本. 2.构建三步骤: 手动编写一个dockerfile文件,然后直接dock ...
- 引用类型--Function类型(函数声明与函数表达式、arguments.callee、caller、apply、call、bind)
在ECMAScript中函数实际上是对象.每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定 ...
- Java - lastIndexOf() 方法
此方法含头不含尾,如获取方法名 add 需要 +1
- 069、Java面向对象之对象引用传递
01.代码如下: package TIANPAN; class Book { // 定义一个新的类 String title; // 书的名字 double price; // 书的价格 public ...
- IdentityServer4专题之七:Authorization Code认证模式
(1)identityserver4授权服务器端 public static class Config { public static IEnumerable<IdentityResource& ...
- 题解 zr1212 【20WC集训】货币
题目链接 我们给每个连通块图上一种颜色.不同的连通块涂不同的颜色. 首先,我们定义\(f_r\)表示:使\([l,r]\)包括\([1,r]\)里所有颜色的最大的\(l\). 然后我维护一个变量\(p ...
- ubuntu 环境下pycharm的 安装与激活教程
1. 基本安装: 1.1 打开Ubuntu的应用市场,并在搜索栏搜索pycharm,结果如下图所示 1.2 选择pro版本进行安装,结果如下图所示: 1.3打开安装后的pycharm,如果出现下图所示 ...
- Tensorflow 将训练模型保存为pd文件
前言 保存 模型有2种方法. 方法 1.使用TensorFlow模型保存函数 save = tf.train.Saver() ...... saver.save(sess,"checkpoi ...
- wx.previewimage预览返回会触发onshow的处理方法
最近做详情页,添加图片预览后竟然触发onshow的处理方法.就显得很尴尬.框架用的uni-app 解决方法 1.page外全局定义开关变量 var a; export default { } 2 .o ...