PAT甲级1084.

目录

A1084

题目

样例

输入:

7_This_is_a_test
_hs_s_a_es

输出:

7TI

思路和坑点

  遍历一遍输出的结果,使用map容器做标记。然后遍历一遍完整的字符串,如果没有对应的映射值,则输出,并添加map的映射标记,表示已经输出过了。
  坑点:
  由于需要输出大写,而且大小写都对应同一个键位,所以统一转化为大写进行判定和操作。

AC代码

#include<bits/stdc++.h>
using namespace std;
int main(void){
#ifdef ONLINE_JUDGE
#else
    freopen("1.txt","r",stdin);
#endif
    string in,broken;
    unordered_map<char,int> mp;          //用于统计是否损坏 
    getline(cin,in);                    //输入序列 
    getline(cin,broken);                //坏掉的序列 
    for(int i=0;i<broken.size();i++){
        broken[i]=toupper(broken[i]);   //统一转化为大写 
        mp[broken[i]]=1;                //做标记 
    }
    for(int i=0;i<in.size();i++){
        in[i]=toupper(in[i]);
        if(mp[in[i]]==0){                //如果不存在代表损坏 
            mp[in[i]]=1;                //修改标记,表示已经输出过,下次不再输出 
            cout<<in[i];
        }
    }
    return 0;
}