PAT 1084 Broken Keyboard[比较]
1084 Broken Keyboard (20 分)
On a broken keyboard, some of the keys are worn out. So when you type some sentences, the characters corresponding to those keys will not appear on screen.
Now given a string that you are supposed to type, and the string that you actually type out, please list those keys which are for sure worn out.
Input Specification:
Each input file contains one test case. For each case, the 1st line contains the original string, and the 2nd line contains the typed-out string. Each string contains no more than 80 characters which are either English letters [A-Z] (case insensitive), digital numbers [0-9], or _ (representing the space). It is guaranteed that both strings are non-empty.
Output Specification:
For each test case, print in one line the keys that are worn out, in the order of being detected. The English letters must be capitalized. Each worn out key must be printed once only. It is guaranteed that there is at least one worn out key.
Sample Input:
7_This_is_a_test
_hs_s_a_es
Sample Output:
7TI
题目大意:有一些键盘字母坏了,打不出来,现在给出原输入和显示的字符串,判断哪些按键坏掉了,并且按发现顺序输出。
//第一次提交的发现最后一个点过不去,去牛客网上提交发现以下问题:

主要是没有考虑到,如果s2已经比对完了,但是s1中还剩下很多没有比对,那么剩下的那些自动就是键盘坏掉的。再判断一下就可以啦。
#include <iostream>
#include <algorithm>
#include<cstdio>
#include<stdio.h>
#include <queue>
#include<cmath>
#include <vector>
#include<set>
using namespace std; int main()
{
string s1,s2;
set<char> st;
vector<char> vt;
cin>>s1>>s2;
int i=;
while(i<s1.size()&&i<s2.size()){
if(s1[i]!=s2[i]){
if(isalpha(s1[i])){
s1[i]=toupper(s1[i]);
}
if(st.count(s1[i])==){
st.insert(s1[i]);
vt.push_back(s1[i]);
}
//s1.substr(i,1);这样写不正确,s1并不会有实质性的变化。。
//s1=s1.substr(i,1);这样也不对,你要知道你要留下哪部分。。
s1=s1.erase(i,);
}else i++;
}
if(i<s1.size()){
for(int j=i;j<s1.size();j++){
if(isalpha(s1[j])){
s1[j]=toupper(s1[j]);
}
if(st.count(s1[j])==){
st.insert(s1[j]);
vt.push_back(s1[j]);
}
}
}
// for(int j=0;j<st.size();j++){
// cout<<st[i];
// }
for(int j=;j<st.size();j++){
cout<<vt[j];
}
return ;
}
1.在set中查找是否相同使用count函数。
//我的天,看了柳神的解答之后,我被颠覆了。

//毕竟是柳神
1.使用string的find函数,对于s1中的每一个,如果没在s2中出现,并且没有在ans中出现,那么就是键盘坏了。
PAT 1084 Broken Keyboard[比较]的更多相关文章
- PAT 1084 Broken Keyboard
1084 Broken Keyboard (20 分) On a broken keyboard, some of the keys are worn out. So when you type ...
- pat 1084 Broken Keyboard(20 分)
1084 Broken Keyboard(20 分) On a broken keyboard, some of the keys are worn out. So when you type som ...
- 1084. Broken Keyboard (20)【字符串操作】——PAT (Advanced Level) Practise
题目信息 1084. Broken Keyboard (20) 时间限制200 ms 内存限制65536 kB 代码长度限制16000 B On a broken keyboard, some of ...
- 1084 Broken Keyboard (20 分)
1084 Broken Keyboard (20 分) On a broken keyboard, some of the keys are worn out. So when you type so ...
- PAT Advanced 1084 Broken Keyboard (20) [Hash散列]
题目 On a broken keyboard, some of the keys are worn out. So when you type some sentences, the charact ...
- 1084. Broken Keyboard (20)
On a broken keyboard, some of the keys are worn out. So when you type some sentences, the characters ...
- PAT (Advanced Level) 1084. Broken Keyboard (20)
简单题. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...
- 【PAT甲级】1084 Broken Keyboard (20 分)
题意: 输入两行字符串,输出第一行有而第二行没有的字符(对大小写不敏感且全部以大写输出). AAAAAccepted code: #define HAVE_STRUCT_TIMESPEC #inclu ...
- 1084. Broken Keyboard (20)-水题
#include <iostream> #include <cstdio> #include <string.h> #include <algorithm&g ...
随机推荐
- 【NOIP模拟题】Incr(dp)
太水的dp没啥好说的.. #include <cstdio> #include <cstring> #include <cmath> #include <st ...
- Java设计模式菜鸟系列(十)模板方法模式建模与实现
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39806973 模板方法模式(Template Method):在一个方法中定义了一个算法的 ...
- ChemDraw怎么绘制H-点或H-划
ChemDraw软件是一款全球领先的化学绘图工具,能够绘制各类化学结构图形和化学方程式,在基础化学.有机化学和分析化学等领域得到了广泛的应用.H-点和H-划是日常作图过程中使用频率较高的化学符号,必须 ...
- python_cookies
1.将cookies保存到变量中,然后打印cookie中的值 #coding:utf-8 #将cookies保存到变量中,然后打印cookie中的值 import urllib2 import coo ...
- WinForm------如何修改PanelControl控件背景色
方法: 如何修改panelcontrol背景色 this.bottomPanel.BorderStyle = BorderStyles.NoBorder; this.bottomPanel.Appea ...
- Hibernate_day03--课程安排_表之间关系_一对多操作
Hibernate_day03 上节内容 今天内容 表与表之间关系回顾(重点) Hibernate的一对多操作(重点) 一对多映射配置(重点) 一对多级联操作 一对多级联保存 一对多级联删除 一对多修 ...
- oracle数据库查询时间sql
select * from cc_picture_info where PICTURE_SOURCE = 3 AND UPLOAD_TIME > to_date('2017-03-29 16:5 ...
- jQuery源码分析-each函数
本文部分截取自且行且思 jQuery.each方法用于遍历一个数组或对象,并对当前遍历的元素进行处理,在jQuery使用的频率非常大,下面就这个函数做了详细讲解: 复制代码代码 /*! * jQuer ...
- golang中context包学习
摘要 go语言中goroutine之间的关联关系,缺乏维护,在erlang中有专门的机制来保障新开仟程的生命周期, 在go语言中,只能通过channel + select来实现,但不够直观,感觉很绕. ...
- Java中break、continue、return语句的使用区别
break.continue.return之间的区别与联系 在软件开发过程中,逻辑清晰是非常之重要的. 代码的规范也是非常重要的.往往细节决定成败.在编写代码的时候,一定要理解语言的作用以及使用的方法 ...