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


题目补充完整

题目描述: 给定一个字符串 s,找到并返回第一个不重复字符的位置索引。如果不存在这样的字符,则返回 -1

示例 1:

输入: s = "leetcode"
输出: 0

解释:第一个不重复的字符是 'l',它出现在索引 0。

示例 2:

输入: s = "loveleetcode"
输出: 2

解释:第一个不重复的字符是 'l',它出现在索引 2(下标从 0 开始)。

示例 3:

输入: s = "aabb"
输出: -1

解释:没有不重复的字符,因此返回 -1。

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 示例代码

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 示例代码

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

推荐面试题