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)的更多相关文章

  1. PAT乙级 1029. 旧键盘(20)

    1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的 ...

  2. PAT 乙级 1029 旧键盘(20) C++版

    1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的 ...

  3. PAT(B) 1029 旧键盘(Java)字符串

    题目链接:1029 旧键盘 (20 point(s)) 题目描述 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的 ...

  4. PAT乙级 1033. 旧键盘打字(20)

    1033. 旧键盘打字(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文 ...

  5. PAT Basic 1029 旧键盘 (20 分)

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 行中分别给出应该输入的文字.以及 ...

  6. PAT (Basic Level) Practise (中文)-1029. 旧键盘(20)

    PAT (Basic Level) Practise (中文)-1029. 旧键盘(20) http://www.patest.cn/contests/pat-b-practise/1029 旧键盘上 ...

  7. PAT 1029 旧键盘(20)(代码)

    1029 旧键盘(20)(20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 ...

  8. PAT-乙级-1029. 旧键盘(20)

    1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的 ...

  9. PAT乙级1029

    1029 旧键盘 (20 分)   旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 ...

随机推荐

  1. jQuery前端生成二维码

    引用: <script src="assets/js/jquery.qrcode.min.js" charset="UTF-8"></scri ...

  2. .net core 中的多环境配置

    参考地址:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/environments?view=aspnetcore-2.2 官网说环 ...

  3. 3 Linux性能优化之 CPU上下文

  4. Atlassian JIRA 插件开发之二 安装和创建项目

    安装参考 https://developer.atlassian.com/server/framework/atlassian-sdk/install-the-atlassian-sdk-on-a-w ...

  5. flume到flume消息传递

    环境:两台虚拟机( 每台都有flume) 第一台slave作为消息的产生者 第二台master作为消息的接收者    IP(192.168.83.133) 原理:通过监听slave中文件的变化,获取变 ...

  6. 决策树(下)-Xgboost

    参考资料(要是对于本文的理解不够透彻,必须将以下博客认知阅读,方可更加了解Xgboost): 1.对xgboost的理解(参考资料1和4是我认为对Xgboost理解总结最透彻的两篇文章,其根据作者pa ...

  7. 【转帖】Alpha、Beta、RC、GA版本的区别

    [版本]Alpha.Beta.RC.GA版本的区别 https://www.jianshu.com/p/d69226decbfe Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测 ...

  8. spring扩展点之五:ApplicationContextInitializer实现与使用

    ApplicationContextInitializer是Spring框架原有的东西,这个类的主要作用就是在ConfigurableApplicationContext类型(或者子类型)的Appli ...

  9. 【Python】处理Excel的库Xlwings

    # # 引入库 import xlwings as xw import time # 打开Excel程序,默认设置:程序可见,只打开不新建工作薄 # app = xw.App(visible=True ...

  10. Google大数据三篇著名论文中文版

    Google File System中文版 Google MapReduce中文版 Google Bigtable中文版