/*
很简单但是很不错的题目。 一类题目。。。就是简历字符的hash表 空间换时间
给一个字符串 找出第一个 只出现一次的字符
遍历两次数组 第一次遍历 完成hash表
第二次 从前往后找遇到第一个只有一个的字符就是答案
*/
/*
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char FirstNoRepeatingChar(char * str)
{
int hash[256];
memset(hash,0,sizeof(hash));
for(int i=0;str[i];++i)
{
int t=(int)str[i];
hash[t]++;
}
for(int i=0;str[i];++i)
{
int t=(int)str[i];
if(hash[t]==1)
return str[i];
}
}
int main()
{
char str[]="abaccdeff";
char ans=FirstNoRepeatingChar(str);
cout<<ans<<endl;
return 0;
}
*/
//这到题是要 删除第一个字符串中 所有第二个字符串中出现过的字符
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
void EraseChar(string a,string b)
{
string ans="";
bool hash[256];
memset(hash,0,sizeof(hash));
for(unsigned int i=0;i<b.size();++i)
{
hash[(int)b[i]]=1;
}
for(unsigned int i=0;i<a.size();++i)
{
if(!hash[(int)a[i]])
ans+=a[i];
}
cout<<ans<<endl;
}
int main()
{
string a,b;
while(cin>>a>>b)
{
EraseChar(a,b);
}
return 0;
}
/*
还有类似的一道题 比如给一个单词 删除所有重复字母 也是hash一下 看之前有没有重复
还有判断两个单词是不是变为词 就是之前接触过的兄弟词 所有字母 次数都一样顺序不一样。
之前处理海量数据 用字典树。 这里只要判断两个是否相当 sort的话 logn了
其实每个On处理 记录hash 再另一个判断就行了
*/