算法-字符串中的第一个惟一字符

图片描述

孤帆远影碧空尽
惟见长江天际流数组

前言

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。若是不存在,则返回 -1。spa

案例

s = "leetcode"
返回 0.code

s = "loveleetcode",
返回 2.blog

思路

1.利用哈希思想,声明一个长度为26的整型数组a,初始值都为0
2.遍历字符串,统计每一个字符出现的次数
3.再次遍历字符串,找到第一个在数组a中出现的第一次的字母索引

代码实现

int firstUniqChar(char * s){
        int a[26] = {0};
        int count = strlen(s);
        int index = 0;
        for (int i = 0; i < count; i++) {
            index = s[i] - 'a';
            a[index] ++;
        }
        for (int i = 0; i < count; i++) {
            if (a[s[i] - 'a'] == 1)
                return i;
        }
        return -1;
    }
相关文章
相关标签/搜索