当前位置: 面试刷题>> 第一个独特字符位置 (经典算法题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 中实现查找第一个不重复字符位置的功能。希望这些示例对你有所帮助,并欢迎你访问码小课网站,学习更多相关内容。