leeCode算法--找出第一个不重复的字符

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

分析:这种题目应该直接就会想到哈希表法。直接上代码。

1
2
3
4
5
6
7
8
9
10
11
12
let firstUniqChar = s => {
let len = s.length
// 这里采用的是集合
let set = new Set()
for (let i = 0; i < len;i++) {
set[s[i]] = set[s[i]] ? s[i] + 1 : 1
}
for (let j = 0;j < len;j++) {
if (set[s[j]] === 1) return j
}
return -1
}

本题中,空间复杂度为O(1),时间复杂度为O(2N),注意边界值。

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2022 Lee
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信