数据结构|剑指offer——查找一个字符串中第一次出现一次的字符(哈希直接定址法)

哈希表——直接定址法的应用

哈希表(Hash table,也叫散列表),是根据关键码值而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。
直接定址法——取关键字的某个线性函数为散列地址,Hash(key)=key或者Hash(key)=A*key+B,A和B是两个常数。
剑指offer面试题:查找一个字符串中第一次出现一次的字符
数据结构|剑指offer——查找一个字符串中第一次出现一次的字符(哈希直接定址法)
文章图片


"test.cpp"
【数据结构|剑指offer——查找一个字符串中第一次出现一次的字符(哈希直接定址法)】

#define _CRT_SECURE_NO_WARNINGS 1 #include using namespace std; #include char FindFirstOneChar(char* str) { assert(str); int tables[256] = {0}; //Ascii表中有256个字符 char* tmp = str; while (*tmp != '\0') { //不加unsigned char也可以 tables[(unsigned char)*tmp]++; tmp++; //也可以一步到位 //tables[(unsigned char)*tmp++]++; } tmp = str; while (*tmp != '\0') { //不加unsigned char也可以 if (tables[(unsigned char)*tmp] == 1) { return *tmp; } else { tmp++; } } }//查找一个字符串中第一个只出现一次的字符 void Test() { char* str = "hhddadeechrhg"; char ret = FindFirstOneChar(str); cout<



    推荐阅读