• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
时间限制
200 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

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

输入格式:

输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、以及下划线“_”(代表空格)组成。题目保证2个字符串均非空。

输出格式:

按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有1个坏键。

输入样例:
7_This_is_a_test
_hs_s_a_es
输出样例:
7TI

思路:输入之后,一一比较,如果不同则是缺失的,为了输出方便,当碰到小写字母时就转为大写存储,否则直接存储,然后在输出时判断前面是否输出相同元素即可

 1 // 1029.cpp : 定义控制台应用程序的入口点。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include<iostream>
 6 #include<vector>
 7 #include<string>
 8 #include<cctype>
 9 #include<algorithm>
10 
11 using namespace std;
12 
13 int main()
14 {
15     string input, output;
16     vector<char> v;
17 
18     getline(cin, input);
19     getline(cin, output);
20 
21     for (int i = 0,j=0; i < input.size(); ++i)
22     {
23         if (input[i] != output[j])//如果不同即为缺失的
24         {
25             if (islower(input[i]))//如果是小写,转为大写
26                 input[i]=toupper(input[i]);
27 
28             v.push_back(input[i]);
29         }
30         else
31             ++j;
32     }
33 
34     vector<char>::iterator i,begin = v.begin(), end = v.end();
35 
36     for (i = begin; i != end; ++i)
37     {
38         if (find(begin, i, *i) == i)//如果前面未出现则输出
39             cout << *i;
40     }
41 
42     cout << endl;
43 
44     return 0;
45 }

 




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#串口操作类,包括串口读写操作发布时间:2022-07-13
下一篇:
Ubuntu下VSCodeC++环境配置发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap