给定一个字符串和长度为n的字符串,找到其中第一个不重复的字符并返回其索引。如果不存在,则返回-1(c++语言)
时间: 2024-05-19 22:17:59 浏览: 96
你可以使用哈希表来解决这个问题。先遍历一遍字符串,将每个字符出现的次数记录在哈希表中。再遍历一遍字符串,找到第一个出现次数为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;
}
相关问题
给定一个字符串和长度为n的字符串,找到其中第一个不重复的字符并返回其索引。如果不存在,则返回-1
好的,您的问题是:给定一个字符串和长度为n的字符串,找到其中第一个不重复的字符并返回其索引。如果不存在,则返回-1。
我可以给您提供一个Python的解法,代码如下:
```
def firstUniqChar(s: str) -> int:
# 构建哈希表
char_dict = {}
for char in s:
if char in char_dict:
char_dict[char] += 1
else:
char_dict[char] = 1
# 查找第一个不重复的字符
for i in range(len(s)):
if char_dict[s[i]] == 1:
return i
return -1
```
这个算法的时间复杂度是O(n),因为我们需要扫描整个字符串。我们使用一个哈希表来存储每个字符出现的次数,然后再次遍历字符串,找到第一个出现次数为1的字符。
如果您有任何疑问,请随时告诉我。
Python给定一个字符串,找到它的第一个不重复字符,并返回它的索引。如果不存在,返回-1
在Python中,可以使用字典数据结构来辅助找到字符串的第一个不重复字符及其索引。以下是一个简单的函数实现:
```python
def first_unique_char(s):
char_count = {} # 创建一个空字典用于存储字符及其计数
for index, char in enumerate(s): # 遍历字符串
if char in char_count:
char_count[char] += 1 # 如果字符已存在,则计数加一
else:
char_count[char] = 1 # 对新字符添加计数
for index, count in char_count.items(): # 再次遍历查找计数为1的字符
if count == 1:
return index # 找到第一个不重复的字符索引,立即返回
return -1 # 如果找不到不重复的字符,返回-1
# 示例
s = "leetcode"
print(first_unique_char(s)) # 输出:0,因为'l'是第一个不重复字符,索引为0
```
这个函数首先统计每个字符的出现次数,然后再次遍历字典找出第一个出现次数为1的字符,即为第一个不重复字符。
阅读全文