图论 - PAT乙级 1029 旧键盘 (C++ python3)
PAT甲级 1029 旧键盘 (C++ python3)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。
Input Specification:
输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、以及下划线“_”(代表空格)组成。题目保证2个字符串均非空。
Output Specification:
按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有 1 个坏键。
Sample Input:
7_This_is_a_test
_hs_s_a_es
Sample Output:
7TI
分析
题目有两个坑点:
1.需要的结果是所有的坏键盘的大写形式
2.坏键盘不重复只用输出一次
C++代码如下:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string s1, s2, ans;
int vis[200];
int main()
{
vector<char> ans;
cin >> s1; cin >> s2;
for (int i = 0; i < s2.size(); i++)
vis[int(s2[i])] = 1;
for (int i = 0; i < s1.size(); i++){
if (vis[int(s1[i])] == 0){
//如果遇到小写字母的情况下
if (s1[i] >= 'a' && s1[i] <= 'z' && vis[int(s1[i])- 32] != 1){
ans.push_back(toupper(s1[i]));
vis[int(s1[i]) - 32] = 1; //标记该校写字母对应的大写字母
vis[int(s1[i])] = 1; //标记该小写字母
}
else if(s1[i] >= 'A' && s1[i] <= 'Z'){//如果遇到大写字母
ans.push_back(s1[i]);
vis[int(s1[i])] = 1;
vis[int(s1[i]) + 32] = 1;
}
else { //其他情况
ans.push_back(s1[i]);
vis[int(s1[i])] = 1;
}
}
}
for (int i = 0; i < ans.size(); i++)cout << ans[i];
system("pause");
return 0;
}
Python3代码:
def main():
string1 = input().upper()
string2 = input().upper()
res = set(string1) - set(string2)。
answer = ""
for x in string1:
if len(res) > 0 and x in res:
answer += x
res.remove(x)
elif len(res) == 0:
break
print(answer)
if __name__ == '__main__':
main()
图论 - PAT乙级 1029 旧键盘 (C++ python3)的更多相关文章
- 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(B) 1029 旧键盘(Java)字符串
题目链接:1029 旧键盘 (20 point(s)) 题目描述 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的 ...
- PAT乙级 1033. 旧键盘打字(20)
1033. 旧键盘打字(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文 ...
- PAT Basic 1029 旧键盘 (20 分)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 行中分别给出应该输入的文字.以及 ...
- PAT (Basic Level) Practise (中文)-1029. 旧键盘(20)
PAT (Basic Level) Practise (中文)-1029. 旧键盘(20) http://www.patest.cn/contests/pat-b-practise/1029 旧键盘上 ...
- PAT 1029 旧键盘(20)(代码)
1029 旧键盘(20)(20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 ...
- PAT-乙级-1029. 旧键盘(20)
1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的 ...
- PAT乙级1029
1029 旧键盘 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 ...
随机推荐
- sql实现MD5加密
select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','test')),3,32)
- 小米win10+kali 双系统
1.下载kali linux 系统镜像,用windisk32imager 制作启动盘,制作好后千万不要格式化u盘,其他的启动盘制作工具不好用,无法加载系统镜像 2.将u盘插入电脑,重启,电脑重启时按 ...
- hadoop学习之HDFS原理
HDFS原理 HDFS包括三个组件: NameNode.DataNode.SecondaryNameNode NameNode的作用是存储元数据(文件名.创建时间.大小.权限.与block块映射关系等 ...
- .Net Core 基于 SnmpSharpNet 开发
SNMP简介(百度百科): SNMP 是专门设计用于在 IP 网络管理网络节点(服务器.工作站.路由器.交换机及HUBS等)的一种标准协议,它是一种应用层协议. SNMP 使网络管理员能够管理网络效能 ...
- vue截取字符串
1.vue中截取前11位字符串 <li> <span>立案时间:</span> <p>{{jsyd.TIME.substring(0,10)}}< ...
- 菜刀连接一句话木马出现:`Cannot call assert() with string argument dynamically`错误
前言 逆天还是上学那会玩渗透的,后来工作后就再也没碰了,所以用的工具还是以前经典款,这不,发现出问题了 问题 如果是PHP5则没有问题,如果是PHP7,会出现:Cannot call assert() ...
- Python语言的特点及自学建议
Python语言的特点Python语言是一种被广泛使用的高级通用脚本编程语言,具有很多区别于其他语言的特点,这里仅列出如下一些重要特点.(1)语法简洁:实现相同功能,Python语言的代码行数仅相当于 ...
- 关于VS2019使用Git时遇到的Bug
最近在运行vs2017时老是卡死,神烦!迫于无奈我从微软官网下载了vs2019,安装后打开项目,发现从git上拉取代码时报错如下: Please make sure you have the corr ...
- drf--ModelSerializers序列化
目录 drf--ModelSerializers序列化 项目准备 配置 settings.py 路由 多表设计 表关系分析 创建models 模型序列化 自定义模型序列化 api/serializer ...
- iOS架构:MVVM设计模式+RAC响应式编程
https://cloud.tencent.com/developer/article/1117009 一:为什么要用MVVM? 为什么要用MVVM?只是因为它不会让我时常懵逼. 每次做完项目过后,都 ...