题目描述
给定一个字符串 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;
}
提交结果截图

该篇文章介绍了一种算法,通过使用字符计数数组和首次出现下标数组,找出给定字符串中第一个不重复字符的索引,若不存在则返回-1。代码展示了如何实现这一功能。
518

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



