字符串中的第一个唯一字符
题目
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
1 | 返回 0 |
返回 2
提示:你可以假定该字符串只包含小写字母。
题解
- 双重循环遍历
1
2
3
4
5
6
7
8
9
10
11
12function firstUniqChar(s: string): number {
const strMap = new Map<string, number>();
for (let i = 0; i < s.length; i++) {
strMap.set(s[i], (strMap.get(s[i]) || 0) + 1);
}
for (let i = 0; i < s.length; i++) {
if (strMap.get(s[i]) === 1) {
return i;
}
}
return -1;
} - 索引一致方法
- 如果找到的第一个索引与倒数找到的最后一个索引相同,代表是第一个
1
2
3
4
5
6
7
8function firstUniqChar(s: string): number {
for (let i = 0; i < s.length; i++) {
if (s.lastIndexOf(s[i]) === s.indexOf(s[i])) {
return i;
}
}
return -1;
}
相关链接
- 作者:力扣 (LeetCode)
- 链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn5z8r/
- 来源:力扣(LeetCode)
- 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。