当前位置 博文首页 > huihui_8的博客:LeetCode 387 字符串中的第一个唯一字符(哈希

    huihui_8的博客:LeetCode 387 字符串中的第一个唯一字符(哈希

    作者:[db:作者] 时间:2021-09-03 18:22

    • 1. 题目链接

    https://leetcode-cn.com/problems/first-unique-character-in-a-string/

    • 2. 题目描述

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

    案例:
    
    s = "leetcode"
    返回 0.
    
    s = "loveleetcode",
    返回 2.
    • 3.题目分析

    用数组words[26]模拟HashMap,利用哈希表words[26]对所有字符计数,遍历字符串返回第一个唯一,即值为1的字符索引。

    • 4.代码实现
    • 1)C实现
    int?firstUniqChar(char?*?s){
    ????if?(s?==?NULL)
    ????????return?-1;
    ????int?len?=?strlen(s);
    ????int?words[26]?=?{0};
    
    ????for?(int?i?=?0;?i?<?len;?i++)
    ????????words[s[i]?-?'a']++;
    ????for?(int?i?=?0;?i?<?len;?i++)
    ????????if?(words[s[i]?-?'a']?==?1)
    ????????????return?i;
    ????return?-1;
    }

    提交记录

    • 2)C++实现
    class?Solution?{
    public:
    ????int?firstUniqChar(string?s)?{
    ????????int?words[26]?=?{0};
    ????????for?(auto?i?:?s)
    ????????????words[i?-?'a']++;
    ????????for?(int?i?=?0;?i?<?s.size();?i++)?{
    ????????????if?(words[s[i]?-?'a']?==?1)
    ????????????????return?i;
    ????????}
    ????????return?-1;
    ????}
    };

    提交记录

    ?

    cs