题目描述
给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。
示例
示例 1:
输入: s = "leetcode"
输出: 0
示例 2:输入: s = "loveleetcode"
输出: 2
示例 3:输入: s = "aabb"
输出: -1
分析:采用哈希表相关知识
代码如下:
int firstUniqChar(char * s){ int hash[26]={0}; int l = sizeof(s); for(int i=0;i<l;i++) hash[s[i]-'a']++; for(int i=0;i<l;i++) { if(hash[s[i]-'a']==1) return i; } return -1; }int firstUniqChar(char * s){
int hash[26]={0}; //创建哈希表
int l = strlen(s);
for(int i=0;i<l;i++) //遍历字符串
hash[s[i]-'a']++; //遇到相应字母一次,在对应的26位的位置中+1
for(int i=0;i<l;i++)
{
if(hash[s[i]-'a']==1)//遍历数组,找出值为1 的元素
return i;
}
return -1;
}

该代码片段是用C++实现的一个函数,用于在给定的字符串中找到第一个不重复的字符的索引。它通过建立一个哈希表来统计每个字符出现的次数,然后遍历哈希表找到值为1的元素,即为第一个不重复的字符。如果找不到,则返回-1。
4170

被折叠的 条评论
为什么被折叠?



