387. First Unique Character in a String(字符串中的第一个唯一字符)
题目描述
给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。
问题分析
只需要记录下每一个字符出现的次数以及第一次出现的下标,然后从中找只出现一次的字符中下标最小的即可。
代码
int firstUniqChar(char* s) {
int count[256] = {0};
int index[256] = {0};
for(int i=0; s[i]!='\0'; i++){
count[s[i]]++;
if(count[s[i]]==1){
index[s[i]]=i;
}
}
int index_min = INT_MAX;
for(int i=0; i<256; i++){
if(count[i]==1){
if(index_min>index[i]){
index_min = index[i];
}
}
}
if(index_min==INT_MAX){
return -1;
}
return index_min;
}