在一个字符串中找到第一个只出现一次的字符(C)

Hash算法的思想:

样例:
输入“abaccdeff”, 输出b

算法思路:字符(char)是一个长度为8的数据类型,因此总共有256种可能。
每个字母根据ASCII码值作为数组的下标。数组中存储的是每个字符出现的次数。

char findOnceChar(char *str) {
    char result = '\0';
    
    int array[256];
    
    for (int i = 0; i < 256; i++) {
        array[i] = 0;
    }
    
    char *current = str;
    while (*current != '\0') {
        array[*current]++;
        current++;
    }
    
    // 重新指向字符串头部
    current = str;
    
    // 遍历字母出现的次数
    while (*current != '\0') {
        if (array[*current] == 1) {
            result = *current;
            break;
        }
        current++;
    }
    
    return result;
}

你可能感兴趣的:(在一个字符串中找到第一个只出现一次的字符(C))