刚刚还在想,昨天我肝了两篇文章,今天还肝不肝了。。。但是今天既然也已经刷题了,不肝一篇文章都对不起自己。废话不哆嗦,走起。。。--2020.6.3
万万没想到系统维护,被迫断更。我脸已肿--2020.6.4

背景
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。
输入格式:
输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。
输出格式:
按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有 1 个坏键。
输入样例:
7_This_is_a_test
_hs_s_a_es
输出样例:
7TI
之前我们做的是有关排序的题目,为了知识框架的完整性,我们跳过前面暂且还没有刷的排序,先看看这个

散列题目我觉得相对来说,容易理解,也比较好写。
有关这道题,题目简短没什么废话,清晰明了。遵循传统,我还是要解释一下
意思是先是给你一行字符串,
然后再给你一行字符串,
看第一行里面的字符,谁没有在第二行出现
打印出他们(如果是字母打印大写的),一种只打印一次
木了~
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
using namespace std;
//所需的准备
string input;//存储题目里模拟的输入
string output;//存储题目里模拟的输出
bool hashTable[128] = {false};//128是采用ASCII码值,关于这个skill,课代表最后总结一下
int main()
{
// freopen("write.in", "r", stdin);
// freopen("ans.out", "w", stdout);
// while (getline(cin, input))
// {
//被注释掉的是我进行文件测试用的代码,我没删,需要的童鞋可以解绑他们
getline(cin, input);
getline(cin, output);//都读进来,没啥解释的
int lenOfInput = input.length();
int lenOfOutput = output.length();
/*
先搞到他们的长度,
我们知道为了遍历一段数据的每一位的话,获取总长度一般来说是很必要的
*/
/*
Input是“原生字符串”,答案是从Input一个个筛出来的,自然依据Input遍历了
*/
for (int i = 0; i < lenOfInput; i++)
{
int j;
char tempOfInput;//这个temp,暂存Input的某一位,他的任务是和output每一位进行比较
char tempOfOutput;//这个temp,暂存Output的某一位,它的更迭比tempofinput要快
for (j = 0; j < lenOfOutput; j++) // 遍历output的每一位
{
tempOfInput = input[i];
tempOfOutput = output[j];//得到某一位
if (tempOfInput >= 'a' && tempOfInput <= 'z')
{
tempOfInput -= 32;
}
if (tempOfOutput >= 'a' && tempOfOutput <= 'z')
{
tempOfOutput -= 32;
}//这里统一变成大写,既方便比较,也方便输出,ASCII差32
if (tempOfInput == tempOfOutput)
break;
/*
如果input的temp,出现在output里面了,
说明这个字母没问题,就不用循环接着在output找了
*/
}
/*
要是我都找完了,也没在output里面找到当前 i 指定的字母,
意味着此时j等于了lenofout
*/
if (j == lenOfOutput && hashTable[tempOfInput] == false)
//要是都找了没找到,并且该字母指定的hashtable是假,就值得输出。不是假说明输出过了
{
printf("%c", tempOfInput);
hashTable[tempOfInput] = true;//输出过一次,就记录
}
}
// }
// fclose(stdin);
// fclose(stdout);
return 0;
}
这题的代码短小精悍,我个人认为是值得热身的一道小题,尤其这个把ASCII当数组下标的操作,值得记录学习。
课代婊表:
在标记普通的一些字符的时候,拿ASCII作为数组下标是很好的做法。/这应该属于基操,我却在煞有介事大加赞扬,战术呵呵~
顺便一提 ,我一直好奇ASCII的发音
我们大多数人都在念
“啊死氪码”
但是人家英语发音可是
“艾斯kii”呀

我不能加音频,如果看了音标还不信的话,自己搜吧。
开始吟唱~~~
时间不早了,如果我想起有什么值得一写的,就回来补充。
一般是没有什么是值得再补充的了,yeah