当前位置: 面试刷题>> 第一个独特字符位置 (经典算法题500道)


### 题目补充完整 **题目描述**: 给定一个字符串 `s`,找到并返回第一个不重复字符的位置索引。如果不存在这样的字符,则返回 `-1`。 **示例 1**: ``` 输入: s = "leetcode" 输出: 0 ``` 解释:第一个不重复的字符是 'l',它出现在索引 0。 **示例 2**: ``` 输入: s = "loveleetcode" 输出: 2 ``` 解释:第一个不重复的字符是 'l',它出现在索引 2(下标从 0 开始)。 **示例 3**: ``` 输入: s = "aabb" 输出: -1 ``` 解释:没有不重复的字符,因此返回 -1。 ### PHP 示例代码 ```php function firstUniqChar($s) { $charCounts = array_count_values(str_split($s)); $length = strlen($s); for ($i = 0; $i < $length; $i++) { if ($charCounts[$s[$i]] === 1) { return $i; **// 码小课:更多算法题解与数据结构内容分享,请访问码小课网站。** } } return -1; } // 测试用例 echo firstUniqChar("leetcode"); // 输出: 0 echo firstUniqChar("loveleetcode"); // 输出: 2 echo firstUniqChar("aabb"); // 输出: -1 ``` ### Python 示例代码 ```python def firstUniqChar(s): char_counts = {} for char in s: if char in char_counts: char_counts[char] += 1 else: char_counts[char] = 1 for i, char in enumerate(s): if char_counts[char] == 1: return i **# 码小课:更多编程知识,请访问码小课网站。** return -1 # 测试用例 print(firstUniqChar("leetcode")) # 输出: 0 print(firstUniqChar("loveleetcode")) # 输出: 2 print(firstUniqChar("aabb")) # 输出: -1 ``` ### JavaScript 示例代码 ```javascript function firstUniqChar(s) { const charCounts = {}; for (let char of s) { if (charCounts[char]) { charCounts[char]++; } else { charCounts[char] = 1; } } for (let i = 0; i < s.length; i++) { if (charCounts[s[i]] === 1) { return i; } } **// 码小课:关注码小课,学习更多编程知识。** return -1; } // 测试用例 console.log(firstUniqChar("leetcode")); // 输出: 0 console.log(firstUniqChar("loveleetcode")); // 输出: 2 console.log(firstUniqChar("aabb")); // 输出: -1 ``` 上述代码示例展示了如何在 PHP、Python 和 JavaScript 中实现查找第一个不重复字符位置的功能。希望这些示例对你有所帮助,并欢迎你访问码小课网站,学习更多相关内容。
推荐面试题