给定一个字符串和长度为n的字符串,找到其中第一个不重复的字符并返回其索引。如果不存在,则返回-1(c++语言)
时间: 2024-05-19 18:17:59 浏览: 100
JavaScript实现查找字符串中第一个不重复的字符
你可以使用哈希表来解决这个问题。先遍历一遍字符串,将每个字符出现的次数记录在哈希表中。再遍历一遍字符串,找到第一个出现次数为1的字符,返回它的索引即可。如果不存在出现次数为1的字符,返回-1。以下是C语言代码实现:
int firstUniqChar(char *s, int n) {
if (n == 0) return -1;
int freq[26] = {0}; // 哈希表,记录每个字符出现的次数
// 统计每个字符出现的次数
for (int i = 0; i < n; i++) {
freq[s[i] - 'a']++;
}
// 找到第一个出现次数为1的字符
for (int i = 0; i < n; i++) {
if (freq[s[i] - 'a'] == 1) {
return i;
}
}
return -1;
}
阅读全文