当前位置:网站首页>LeetCode:387. 字符串中的第一个唯一字符

LeetCode:387. 字符串中的第一个唯一字符

2022-07-06 08:44:00 Bertil

给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。

示例 1:

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

示例 2:

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

示例 3:

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

提示:

  • 1 <= s.length <= 10^5
  • s 只包含小写字母

解题思路

1.首先用哈希表统计每个字母出现的次数
2.然后遍历字符串,如果发现字符只出现一次,直接返回对应的下标,否则循环终止之后返回-1

代码

/** * @param {string} s * @return {number} */
var firstUniqChar = function(s) {
    
    // 创建一个哈希表
    let map = new Map()
    // 统计次数
    for (let i = 0; i < s.length; i++) {
    
        let word = s.charAt(i)
        if (map.has(word)) {
    
            let val = map.get(word)
            map.set(word, val + 1)
        } else {
    
            map.set(word, 1)
        }
    }
    // 找到第一个只出现一次的字母
    for (let i = 0; i < s.length; i++) {
    
        if (map.get(s.charAt(i)) === 1) {
    
            return i
        }
    }
    return -1
};
原网站

版权声明
本文为[Bertil]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Bertil/article/details/125316104