题目
https://pintia.cn/problem-sets/994805342720868352/problems/994805382902300672
AC代码
参考代码(很巧妙)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1,s2,ans;
cin>>s1>>s2;
for(int i=0;s1[i];i++)
{
if(s2.find(s1[i])==string::npos && ans.find(toupper(s1[i]))==string::npos)
ans+=toupper(s1[i]);
}
cout<<ans;
}
本人代码(常规)
#include<bits/stdc++.h>
using namespace std;
// a A 97 65
int main()
{
string s1,s2;
int i=0,j=0;
cin>>s1>>s2;
map<char,int> vis;
while(s1[i])
{
if(s1[i]==s2[j])
{
i++;j++;
}
else
{
if(vis[s1[i]]==0)
{
if(s1[i]>='a'&&s1[i]<='z')
{
vis[s1[i]]=vis[s1[i]-32]=1;
printf("%c",s1[i]-32);
}
else if(s1[i]>='A'&&s1[i]<='Z')
{
vis[s1[i]]=vis[s1[i]+32]=1;
printf("%c",s1[i]);
}
else
{
vis[s1[i]]=1;
cout<<s1[i];
}
}
i++;
}
}
}