leetcode 算法题387 (简单094) 字符串中的第一个唯一字符
- 题目介绍
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
- 示例
s = “leetcode”
返回 0.
s = “loveleetcode”,
返回 2.
- 解法一
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function(s) {
let i = 0;
while(i < s.length) {
if(s.indexOf(s[i]) === i && s.indexOf(s[i], i + 1) === -1) {
return i;
}
i++;
}
return -1;
};
执行用时 : 100 ms, 在所有 JavaScript 提交中击败了96.52%的用户
内存消耗 : 37.4 MB, 在所有 JavaScript 提交中击败了81.41%的用户
- 解法二
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function(s) {
let i = 0;
while (i < s.length) {
if (s.indexOf(s[i]) === i && s.indexOf(s[i], i + 1) === -1) {
return i;
}
i++;
}
return -1;
};
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function(s) {
let i = 0, map = {};
while (i < s.length) {
if(map[s[i]] || map[s[i]] === 0) {
map[s[i]] = -1;
} else {
map[s[i]] = i;
}
i++;
}
i = -1;
for(let key in map) {
if(map[key] !== -1) {
if(i === -1) {
i = map[key];
} else {
i = Math.min(i, map[key]);
}
}
}
return i;
};
执行用时 : 124 ms, 在所有 JavaScript 提交中击败了80.19%的用户
内存消耗 : 37.9 MB, 在所有 JavaScript 提交中击败了43.29%的用户
本文解析了LeetCode算法题387,寻找字符串中的第一个唯一字符并返回其索引位置,提供了两种JavaScript实现方法,包括直接搜索和使用哈希表优化的方法。

被折叠的 条评论
为什么被折叠?



