题目
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
s = “leetcode”
返回 0
s = “loveleetcode”
返回 2
提示:你可以假定该字符串只包含小写字母。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
1.哈希表
模拟哈希表, 找出字符出现频率, 然后再从头遍历, 找到第一个出现频率为1的字母,返回下标
O(n)
const firstUniqChar = function(s) {const arr = new Array(26).fill(0)const n = s.lengthfor(let i = 0; i < n; i++) {const code = s[i].charCodeAt() - 'a'.charCodeAt()arr[code] ++}for (let i = 0; i < n; i++) {const code = s[i].charCodeAt() - 'a'.charCodeAt()if(arr[code] === 1) {return i}}return -1};
