1. 大小写不敏感,先将输入输出都转为大写
2. 两个指针(i, j)分别指向输入和输出串的头,用另一个数组(already)记录字符是否已经被输出过。当i, j指向的内容相同时都移近指针(++i, ++j), 不等则只移近i.
代码:
#include <vector>
#include <string>
#include <iostream>
using namespace std;
inline void capitalize(string& s)
{
for (size_t i = 0; i < s.size(); ++ i)
{
if (s[i]>='a' && s[i]<='z')
{
s[i] = s[i] - 'a' + 'A';
}
}
}
int main()
{
string s1, s2;
vector<bool> already(1000, false);
cin >> s1 >> s2;
capitalize( s1 );
capitalize( s2 );
for (size_t i=0, j=0; i<s1.size(); ++ i)
{
if ( s1[i] != s2[j] )
{
if (already[s1[i]] == false)
{
already[s1[i]] = true;
cout << s1[i];
}
} else
{
++ j;
}
}
return 0;
}