【哈希表】

r囧r小猫 2022-01-06 11:33 489阅读 0赞
  1. char FirstNotRepeatingChar(char* pString)
  2. {
  3. // invalid input
  4. if(!pString)
  5. return 0;
  6. // get a hash table, and initialize it
  7. const int tableSize = 256; //字符1个字节8位
  8. unsigned int hashTable[tableSize]; //unsigned??
  9. for(unsigned int i = 0; i < tableSize; ++ i)
  10. hashTable[i] = 0; //为什么要置0?
  11. // get the how many times each char appears in the string
  12. char* pHashKey = pString;
  13. while(*(pHashKey) != '\0')
  14. hashTable[*(pHashKey++)] ++;
  15. // find the first char which appears only once in a string
  16. pHashKey = pString;
  17. while(pHashKey)
  18. {
  19. if(hashTable[*pHashKey] == 1)
  20. return *pHashKey;
  21. pHashKey++;
  22. }
  23. // if the string is empty
  24. // or every char in the string appears at least twice
  25. return 0;
  26. }

转载于:https://www.cnblogs.com/zhangXH/p/3984827.html

发表评论

表情:
评论列表 (有 0 条评论,489人围观)

还没有评论,来说两句吧...

相关阅读

    相关

    什么是哈希表    哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的[数据结构][Link 1]。也就是说,它通过把关键码

    相关

    散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速

    相关

    我们知道,通过对数组进行直接寻址(Direct Addressing),可以在 O(1) 时间内访问数组中的任意元素。所以,如果存储空间允许,可以提供一个数组,为每个可能的关键

    相关

    哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0

    相关

    一、简介 如果所有的键都是小整数,那么我们可以用一个数组来实现无序的符号表,将键作为数组的索引i而数组中i(键)处储存的就是对应的值。 这样就可以快速地访问任意键的值,

    相关

    【一】哈希表 > 他通过把关键码值映射到表中的一个位置来访问记录,以加快查找的速度。这个映射函数就是散列函数。 ![watermark_type_ZmFuZ3poZW5na