当前位置 博文首页 > huihui_8的博客:LeetCode 387 字符串中的第一个唯一字符(哈希
https://leetcode-cn.com/problems/first-unique-character-in-a-string/
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
s = "leetcode"
返回 0.
s = "loveleetcode",
返回 2.
用数组words[26]模拟HashMap,利用哈希表words[26]对所有字符计数,遍历字符串返回第一个唯一,即值为1的字符索引。
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;
}
提交记录
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