美文网首页
[数据结构与算法-iOS 实现] Hash 算法

[数据结构与算法-iOS 实现] Hash 算法

作者: 孙掌门 | 来源:发表于2019-12-25 20:33 被阅读0次

Hash 算法

给定一个字符串找出第一个出现一次的字符

如给定"abaccdeff",应该输出b。

思路:

字符char是一个长度为8的数据类型,所以总共有256种可能,每个字母根据他的ASCII码值作为数组的下标对应数组的一个数字,数组中存储每个字符出现的次数

比如给定字母 a,对应 ASCii 的值为97,那么数组索引下标为97

char ->f(key)->index

存储和查找都通过该函数。

char findFirstChar(char *chr){
    char result = '\0';
    // 定义一个数组用来存储每个字符出现的次数
    int array[256];
    // 初始化数组
    for (int i = 0 ; i < 256; i++) {
        array[0] = 0;
    }
    char *p = chr;
    // 遍历每个字符
    while (*p != '\0') {
        // 将字母的值对应的存储位置,+1,数组的值代表这个值出现的次数
        array[*(p ++)] ++;
    }
    // 将 p 指向头部
    p = chr;
    while (*p != '\0') {
        // 找到出现一次
        if (array[*p] == 1) {
            result = *p;
            break;
        }
        // 继续查找
        p ++;
    }
    return result;
}

相关文章

网友评论

      本文标题:[数据结构与算法-iOS 实现] Hash 算法

      本文链接:https://www.haomeiwen.com/subject/cxrhoctx.html