PATB1029: 旧键盘打字
【思路】:
HASH经常用来求两个集合的交 集 补集等 。去重小能手
1首先对目标集合中的元素进行HASH,这里+ 则 所有的大写字母over ,一个字母则小写一起go die 数字无影响的
2然后对元集合进行过滤性输出
【知识点】
fill(a,a+5,true)
isupper()判断字符是大写字母吗
【参考答案】
//B1033旧键盘打字
void B1033(){
string s1, s2;
cin >> s1 >> s2;
bool hash_T[256] ;
fill(hash_T,hash_T+256,true);
for (int i = 0; i < s1.length(); i++)
{
if (s1[i]=='+')
{
for (int j = 'A'; j < 'Z'; j++)
{
hash_T[j] = false;
}
}
else{
if (isupper(s1[i]))
{
hash_T[s1[i] + 32] = false;
}
hash_T[s1[i]] = false;
}
}
for (int i = 0; i < s2.length(); i++)
{
if (hash_T[s2[i]] == true)
{
cout << s2[i];
}
}
}