题目描述
给定一个字符串 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;
}